Compilers
198:415, Spring 2021
synchronous remote

IN ORDER TO DOWNLOAD DOCUMENTS OR START-UP WEBEX SESSIONS, PLEASE GO TO THE ACTUAL CLASS WEBSITE at https://www.cs.rutgers.edu/courses/415/classes/spring_2021_kremer/
DOING IT FROM INSIDE SAKAI DOES NOT SEEM TO WORK!

Lectures will be taught online using Webex with the following link: Webex lectures.

Announcements

Description

Introduction to compiler construction. Course contents include the following: Formal translation of programming languages, program syntax and semantics. Finite state recognizers and regular grammars. Context-free parsing techniques such as LL(k) and LR(k). Attribute grammars, syntax-directed translation schema, type checking, register allocation, instruction selection, code generation, data flow analysis and code improvement transformations (code optimizations), parallelism, dependence analysis, quantum computing.

Please see a short introductory video describing the class.

Staff

Prerequisites, Lectures and Recitations

prerequisites: (211 or 331) and 314

lectures : Tuesday/Thursday 3:20pm - 4:40pm, synchronous online only

recitations :

Textbooks

Tentative Syllabus

Overview (EAC §1)
Local register allocation (EAC §13)
Instruction scheduling (EAC §12)
Scanning (EAC §2)
Parsing (EAC §3)
Context sensitive analysis (EAC §4)
Static and dynanic representations in compiled code (EAC §6 & §7)
Introduction to optimization (EAC §8)
Code selection (EAC §11)
Compilation strategies for parallel architectures
Compilation strategies for non-traditional computing models

There will be three programming projects and eight homework assignments.

Academic Integrity

This course requires that every student adheres to the Academic Integrity Policy. DO NOT CHEAT ! If you have any questions whether a particular activity is considered cheating, talk to the instructor. You have to make sure that all your project files are read protected. If you don't know how to do this in Linux, ask your TA. Leaving a project file unprotected and thereby visible to your fellow students is considered cheating.

If you need an extension to a project or homework, let the instructor know as early as possible.

Read/Post questions

Please post questions regarding homeworks and projects using Rutgers's Sakai/Piazza system . DO NOT send homework or project questions directly to a TA or me. THANKS!
You should read the sakai/piazza 415 site at least every other day!

MIDTERM and Quizzes (tentative)

There will be no midterm, but there will be weekly or bi-weekly quizzes starting in the third week..

FINAL EXAM

There will be a final exam.

Lecture Notes

Homeworks

Please submit your homework solution as a single pdf file through sakai.

Projects

All projects are INDIVIDUAL, NOT GROUP projects. For the projects, we use the machines in the ilab cluster. The ilab cluster machines contains the listing of valid hostnames available for projects. You have the same home directory across all machines of the ilab cluster .


Acknowledgement

This course has been based on courses taught by Keith Cooper at Rice University and Chau-Wen Tseng at the University of Maryland.