Languages and compilers - COMPILATORI (2016/2017)

Course code
Name of lecturer
Alessandra Di Pierro
Number of ECTS credits allocated
Academic sector
Language of instruction
II sem. dal Mar 1, 2017 al Jun 9, 2017.

To show the organization of the course that includes this module, follow this link * Course organization

Lesson timetable

Learning outcomes

The students will learn the basic notions and techniques at the base of the theory and practice of compiler construction for programming languages. The course aims to provide the students with
- the necessary competences for designing and implementing simple compilers,
- the skills for a competent usage of tools for lexical and syntactical analysis,
- the knowledge of the theoretical notions at the base of the various compilation phases.


The list below gives a tentative programme that the lectures are intended to cover.
The last two points of the list are developed in a series of lab sessions.
The e-learning platform is used to make additional 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 Egidius Mogensen Introduction to Compiler Design Springer-Verlag London 2011 978-0-85729-828-7

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 compilers 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.