It covers lexical analysis, parsing, and translation to abstract syntax using modern parser generator technology. It discusses binding of identifiers and symbol table organization, and a variety of intermediate representations that are suitable for backend analysis. It investigates backend transformations and optimizations for imperative languages. Go to the lab in CSE South. Follow the directions from there.
Homeworks are due at the beginning of the class listed in the course schedule.
Students may work individually or in pairs - of course, pairs will be expected to produce more results. Students may either extend a compiler framework made available to the class, or write a detailed survey on a recent compiler-related topic from the literature. Other projects may also be possible with prior approval. Students will present their results during the final class.