20364 Compilation
Credits: 4 advanced credits in Computer Science or in Software Engineering
Prerequisites: Students must fulfill all English requirements and take bibliographic instruction in the Library.
Required: Automata Theory and Formal Languages, System Programming Laboratory 1
The course is based on Compilers: Principles, Techniques, and Tools (2nd ed.), by A.V. Aho, M.S. Lam, R. Sethi, and J.D. Ullman (Addison Wesley, 2006).
Objectives: To present principles of compiler design and techniques for their implementation.
The course focuses on solutions to general problems posed by translation, independent of the original language or a specific target computer. At the end of the course, students are required to prepare an extensive programming project based on constructing a compiler for a simple programming language defined for this purpose.
Topics: Introduction, a simple syntax-directed translator, lexical analysis, syntax analysis, syntax-directed translation, intermediate-code generation, run-time environments, code generation, machine-independent optimization.
1or Introduction to System Programming with C (20386), which is no longer offered.