Linguaggi e compilatori (2010/2011)

Codice insegnamento
4S02726
Crediti
12
Coordinatore
Andrea Masini
Altri corsi di studio in cui è offerto
L'insegnamento è organizzato come segue:
Modulo Crediti Settore disciplinare Periodo Docenti
COMPILATORI 6 INF/01-INFORMATICA II semestre Andrea Masini
LINGUAGGI 6 INF/01-INFORMATICA I semestre Andrea Masini

Obiettivi formativi

Modulo: COMPILATORI
-------
Introdurre le tecniche di traduzione automatica del codice. Apprendere una metodologia generale per la progettazione di compilatori.


Modulo: LINGUAGGI
-------
Il corso insegna i concetti fondamentali dei linguaggi di programmazione, quali funzioni, tipi, gestione della memoria, e controllo. L’obiettivo è dare agli studenti una comprensione approfondita dei problemi e dei compromessi che si incontrano nella progettazione dei linguaggi di programmazione. Questa comprensione permette agli studenti di cogliere vantaggi e svantaggi dei linguaggi che usano,in modo da saper valutare la scelta del linguaggio di programmazione rispetto all’applicazione che si vuole realizzare.

Programma

Modulo: COMPILATORI
-------
Analisi lessicale del codice. Analisi sintattica: parsing : top-down (LL) e bottom-up (LR). Definizioni guidate dalla sintassi e traduzioni guidate dalla sintassi: attributi, azioni semantiche. Generazione del codice intermedio: alberi di sintassi astratta, codice intermedio. Generazione del codice oggetto. Ottimizzazione del codice.


Modulo: LINGUAGGI
-------
Funzioni. Macchine virtuali: interpreti e compilatori. Descrizione di un linguaggio di programmazione: sintassi: grammatiche non contestuali. Semantica operazionale strutturata.
Gestione della memoria: regole di visibilità, funzioni e procedure, passaggio di parametri, stack record di attivazione, heap.
Controllo: strutturazione ed astrazione, eccezioni.
Dati e tipi: tipi di dato, tipi di base e composti, sistema dei tipi, interferenza di tipo e polimorfismo, garbage collection.

Modalità d'esame

Modulo: COMPILATORI
-------
scritto


Modulo: LINGUAGGI
-------
Esame scritto

Testi di riferimento
Autore Titolo Casa editrice Anno ISBN Note
Maurizio Gabbrielli, Simone Martini Linguaggi di programmazione: principi e paradigmi (Edizione 2) McGraw Hill 2011 88-386-626