Compilers (2019/2020)

Course code
Name of lecturer
Alessandra Di Pierro
Alessandra Di Pierro
Number of ECTS credits allocated
Academic sector
Language of instruction
II semestre dal Mar 2, 2020 al Jun 12, 2020.

Lesson timetable

Go to lesson schedule

Learning outcomes

The course provides the students with the necessary skills for the design and implementation of simple compilers and interpreters. At the end of the course the student will be able to apply the acquired notions on the theory of compiler constructions for a knowledgeable use of compiler tools such as parser generators and for the design of static analysers.


The list below gives a tentative programme that the lectures are intended to cover in a period of at least 44 hours.
The last two points of the list are supported by a series of lab sessions taking additional 12 hours.
The e-learning platform is used to make extra teaching material available to the students (lectures slides, exercises and their solutions, lab material etc.). This is intended to complement the lectures and the text books suggested in the related section.


* Introduction to the course and to the compilers technology
* Lexical analysis
* Syntactical analysis
* Abstract syntax
* Semantical analysis (type-checking)
* Intermediate code
* Intermediate code generation
* Usage of tools for parser generation
* Construction of a compiler for a simple functional language.

Reference books
Author Title Publisher Year ISBN Note
Aho, A.V. and Lam, M.S. and Sethi, R. and Ullman, J.D. Compilatori: Principi, tecniche e strumenti (Edizione 2) Pearson 2009 978-88-7192-559-2
Torben Aegidius Mogensen Introduction to Compiler Design Springer 2011 978-0857298287
Nielson, F., Nielson, H.R., Hankin, C. Principles of Program Analysis (Edizione 2) Springer-Verlag 2005 ISBN 3-540-65410-0

Assessment methods and criteria

The exam is a written test consisting of four problems with open answer. The objective of the test is to verify that students have effectively learnt the essential notions and techniques at the base of compiler construction and are able to put them in practice. Each question is evaluated in the range 0-7.5 so that the maximum score that can be achieved is 30/30. The `laude' is assigned to manuscripts that clearly show the student's mastery of the course topics.