Unit | Credits | Academic sector | Period | Academic staff |
---|---|---|---|---|
COMPILATORI | 6 | INF/01-INFORMATICS | II semestre |
Alessandra Di Pierro
|
LINGUAGGI | 6 | INF/01-INFORMATICS | I semestre |
Roberto Giacobazzi
|
------------------------
MM: COMPILATORI
------------------------
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.
------------------------
MM: LINGUAGGI
------------------------
The course introduces the basic concepts of programming languages, such as functions, types, memory management, and control. The aim is to give a thorough understanding of the problems encountered in the design of programming languages. With this knowledge, students will be able to understand the advantages and disadvantages in using certain kinds of programming languages and to choose the most appropriate one for a given application.
------------------------
MM: COMPILATORI
------------------------
* Introduction to the course and to the compilers technology * Lexical analysis * Syntactical analysis and language classes * Abstract syntax * Semantical analysis (type-checking) * Intermediate bytecode * Intermediate bytecode generation
------------------------
MM: LINGUAGGI
------------------------
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. Examples of programming paradigms.
------------------------
MM: COMPILATORI
------------------------
The exam consists in a group project with a final individual discussion.
------------------------
MM: LINGUAGGI
------------------------
Written exam with optional oral exam (mandatory for evaluations greater than 26/30).
Author | Title | Publisher | Year | ISBN | Note |
Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman | Compilers: Principles, Techniques, and Tools (2nd Edition) | Pearson | 2007 | 9780321486813 | |
Torben Aegidius Mogensen | Introduction to Compiler Design | Springer | 2011 | 978-0857298287 | |
Maurizio Gabbrielli, Simone Martini | Linguaggi di programmazione: principi e paradigmi (Edizione 2) | McGraw Hill | 2011 | 88-386-626 | |
T.W. Pratt e M.V. Zelkowitz | Programming languages: Design and implementation (Edizione 3) | Prentice Hall | 1999 |