Compilatori (2017/2018)

Codice insegnamento
4S00041
Docente
Alessandra Di Pierro
Coordinatore
Alessandra Di Pierro
crediti
6
Settore disciplinare
INF/01 - INFORMATICA
Lingua di erogazione
Italiano
Periodo
II sem. dal 1-mar-2018 al 15-giu-2018.

Orario lezioni

Vai all'orario delle lezioni

Obiettivi formativi

Il corso introduce gli elementi di base della teoria della compilazione dei linguaggi di programmazione. L'obiettivo del corso e' fornire agli studenti le competenze necessarie per lo sviluppo e l'implementazione di compilatori o interpreti per linguaggi semplici, le capacita' per l'utilizzo consapevole di strumenti per la generazione di parser e la conoscenza delle nozioni teoriche alla base delle varie fasi del processo di compilazione.
Lo studente che segue questo corso avrà le competenze necessarie per l'implementazione di semplici traduttori o interpreti e per l'uso di strumenti per l'analisi e l'ottimizzazione di semplici linguaggi o applicazioni.

Programma

Il corso prevede 44 ore di lezioni frontali destinate a coprire il programma schematizzato di seguito. Per gli ultimi due argomenti dell'elenco riportato, sono previste ulteriori 12 ore di attività in laboratorio con esercitazioni al computer sotto la supervisione del docente. Oltre ai libri di testo, viene usata la piattaforma e-learning per mettere a disposizione degli studenti materiale didattico aggiuntivo, e.g. lucidi delle lezioni, esercizi e soluzioni, materiale di supporto per le attività in laboratorio.

Programma

* Introduzione al corso e alla tecnologia dei compilatori.
* Analisi lessicale.
* Analisi sintattica.
* Sintassi astratta.
* Analisi semantica (type-checking).
* Codice intermedio.
* Generazione del codice intermedio.
* Utilizzo di strumenti automatici per la generazione di analizzatori sintattici.
* Sviluppo in laboratorio di un compilatore per un semplice linguaggio funzionale.

Testi di riferimento
Autore Titolo Casa editrice Anno 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

Modalità d'esame

L'esame e' inteso come una verifica dell'apprendimento delle nozioni fondamentali per la costruzione di un compilatore, nonché della conoscenza del particolare compilatore sviluppato in laboratorio.
Gli studenti devono rispondere per iscritto a quattro domande con risposta aperta di cui una e' riservata al lavoro svolto in laboratorio. Il punteggio assegnato ad ogni esercizio varia tra 0 (zero) e 7,5 per un totale massimo di 30/30.
La lode viene assegnata esclusivamente ad elaborati svolti correttamente che dimostrino con l'accuratezza dei dettagli e della presentazione piena padronanza della materia.

Statistiche per i requisiti di trasparenza (Attuazione Art. 2 del D.M. 31/10/2007, n. 544)

I dati relativi all'AA 2017/2018 non sono ancora disponibili