04138 - Programming Languages

Course Unit Page

Academic Year 2019/2020

Learning outcomes

At the end of the course, the student will know the principal techniques for defining the syntax and the semantics of the most common programming languages; they will also know how to implement the principal constructs.

Course contents

First module, first semester; instructor: Maurizio Gabbrielli

Environment, scoping rules and their implementation. Stack of the activation records; heap. Memory management: garbage collection. Sequence control, procedures, recursion. Types and type checking. Parameters and parameter passing: by value, by reference, by result, by name. Functional parameters; closures. Exceptions. The object-oriented paradigm: classes and objects, initialization, inheritance and late-binding. Subtyping is not inheritance. The logical paradigm. The functional paradigm. The concurrent paradigm.

Second module, second semester; instructor: Roberto Gorrieri

The evolution of programming languages. From assembly to higher level languages. Abstract machines, intepreters and compilers. Syntax (BNF) and semantics (SOS). Regular grammars, regular expressions, and regular automata: equivalences and principal theorems (e.g., pumping lemma); design of lexical analysers. Context free grammars and push-down automata: equivalences and principal theorems (e.g., pumping lemma). Deterministic context free grammars: algorithms for parsing; grammars LL(1), LR(0), SLR, LR(1), LALR.


Maurizio Gabbrielli, Simone Martini Linguaggi di programmazione: principi e paradigmi. Seconda edizione. McGraw-Hill Italia, 2010. ISBN 88-386-6573-8.
For the first module, one can use also the English translation of the first edition:
Maurizio Gabbrielli, Simone Martini. Programming Languages: Principles and Paradigms [http://www.springer.com/computer/book/978-1-84882-913-8]. Springer, April 2010. ISBN 978-1-84882-913-8. Series Undergraduate Topics in Computer Science, UTiCS [http://www.springer.com/series/7592] .

Teaching methods


Assessment methods

Written and oral examinations. The examination covers both modules.

Teaching tools



Office hours

See the website of Maurizio Gabbrielli

See the website of Roberto Gorrieri