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. There will be three programming projects.
This course requires that every student adheres to the
DCS 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.
Please post questions regarding homeworks and projects using
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!
Wednesday, March 7, in class.
Common hours exam. Details later.
There will be homeworks nearly every week.
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 .
This course has been based on courses taught by Keith Cooper at Rice University and Chau-Wen Tseng at the University of Maryland.