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.