Languages and compilers (2016/2017)

Course code
Roberto Giacobazzi
Teaching is organised as follows:
Unit Credits Academic sector Period Academic staff
COMPILATORI 6 INF/01-INFORMATICS II sem. Alessandra Di Pierro
LINGUAGGI 6 INF/01-INFORMATICS I sem. Roberto Giacobazzi

Learning outcomes

The aim of the course is to teach the operation and implementation of the main programming language constructs with an overview of the various languages: imperative languages, object languages, functional languages and logic languages. The student will be required to develop an interpreter for an imperative-functional object oriented language, implemented in OCAML, under the guidance of the teacher.


Introduction to the Course, Mathematical Basics, Fixed Point Theorems, Abstract Machines, Operational Semantics, Denotation Semantics, OCAML Language, Data Types, Expressions, Blocks, Functions and Procedures, Slides, Parameter Passage, storage.

Assessment methods and criteria

The Language and Compilation Examination consists in the development of a Linguistic Project, the Compilation Examination (to be defined by the Lecturer) and an individual oral exam. The final vote is the average of rounded trials for excess.

For the Linguaggi part, the exam consists in the realization of one of the projects under consideration. The groups (up to 3 students) will need to develop the chosen project, producing a written (possibly in English) paper detailing the implementation and implementation of the chosen project, including a test phase of the project on some examples that are considered significant. Groups are free to interpret what is not specified in project delivery according to their taste and design choices. The evaluation of the project will concern: the degree of originality (also with respect to other projects), the quality of the project choices, the level of detail of the written work, and the significance of the proposed examples to verify the correct implementation of the project. Students who are currently undergoing oral examination will be required to perform the specifications on the proposed examples.
Projects can be delivered to any one on the calendar-defined call dates for the Part of Linguaggi starting from the first February appeal. The oral part will be held on the call-by-call dates. The validity of Linguistic Projects is 1 academic year. Any extraordinary appeals can be requested and activated only at the request of at least 3 groups. Contact the Tutor (Emanuele Falzone) for the composition of the groups. Once the group is established, students will have to choose one of the projects indicated by the teacher and send it to the Tutor by email.

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