CdSINFORMATICA
Codice653AA
CFU9
PeriodoPrimo semestre
LinguaInglese
Comprendere quali sono i problemi legati alla realizzazione di compilatori e interpreti dei moderni linguaggi di programmazione, al cui progetto e realizzazione sarà in grado di contribuire consapevolmente
The student who successfully completes the course will be able to contribute to the design and implementation of a modern programming language
Progetto + seminario+esame orale
Project + oral exam
È richiesta la capacità di comprensione, apprendimento e ragionamento logico-deduttivo e di progetto e realizzazione di artefatti sofware
A capability is required of understanding, learning and formal reasoning, as well as of designing and implementing
I soliti
The usual ones
Educati
Good
I soliti
The usual ones
Un po' di programmazione e di algoritmi
Programming and algorithms
Lezioni e laboratorio
Lectures and laboratory
- Linguaggi regolari e liberi
- Analisi lessicale e sintattica e genrazione di scanner e parser
- Aspetti contestuali e loro analisi
- Rappresentazioni intermedie
- Tabelle dei simboli: rappresentazione e gestione
- Funzioni e procedure
- Analisi statiche (data flow, control flow, abstract interpretation)
- Ottimizzazioni
- Generazione di codice
- Regular and context-free languages
- Recognizers: scanners and parsers
- Contextual analysis
- Intermediate representations
- Symbol table: representation and handling
- Functional and procedural abstractions
- Static analysis (data flow, control flow, ...)
- Optimizations
- Code generation
- Implementation of a simple compiler in OCaml
Keith D. Cooper, Linda Torczon: Engineering a Compiler. Morgan Kaufmann, Second Edition 2013
Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman: Compilers: Principles, Techniques, and Tools. Addison-Wesley, Second Edition 2006
Terence Parr: Language Implementation Patterns. The Pragmatic Bookshelf, 2010
Peter Sestoft: Programming Language Concepts. Springer, 2012
Andrew W. Appel, Jens Palsberg: Modern Compiler Implementation in Java. Cambridge University Press, Second Edition 2004
Flemming Nielson, Hanne Riis Nielson, Chris Hankin: Principles of program analysis. Springer 1999
Keith D. Cooper, Linda Torczon: Engineering a Compiler. Morgan Kaufmann, Second Edition 2013
Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman: Compilers: Principles, Techniques, and Tools. Addison-Wesley, Second Edition 2006
Terence Parr: Language Implementation Patterns. The Pragmatic Bookshelf, 2010
Peter Sestoft: Programming Language Concepts. Springer, 2012
Andrew W. Appel, Jens Palsberg: Modern Compiler Implementation in Java. Cambridge University Press, Second Edition 2004
Flemming Nielson, Hanne Riis Nielson, Chris Hankin: Principles of program analysis. Springer 1999
nessuna
none
Progetto ed esame orale
Project and oral exam