Languages and compilers - LINGUAGGI (2010/2011)

Course code
Name of lecturer
Andrea Masini
Number of ECTS credits allocated
Other available courses
Academic sector
Language of instruction
I semestre dal Oct 4, 2010 al Jan 31, 2011.

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

Lesson timetable

Learning outcomes

The course teaches the fundamental concepts of programming languages, such as functions, types, memory management, and control. The aim is to give a thorough understanding of problems in the design of programming languages. This understanding enables students to grasp the advantages and disadvantages of using different kind of programming languages.


Virtual machines: interpreters and compilers. Syntactical descriptions of programming languages: context free grammars. Structured operational semantics.
Memory management: scoping rules, functions, procedures, parameter passing, stack of activation records, heap.
Control: structuring of statements, abstraction, exceptions.
Data and types: data types, base types, structured types, type systems, type inference and polymorphism.

Reference books
Author Title Publisher Year ISBN Note
Maurizio Gabbrielli, Simone Martini Linguaggi di programmazione: principi e paradigmi (Edizione 2) McGraw Hill 2011 88-386-626

Assessment methods and criteria

Written examination

Teaching aids