Linguaggi e macchine astratte loro associate. Fasi di compilazione. Analisi semantica e generazione del codice. Ottimizzazione del codice. Verifica di Proprieta'.
Il corso mira a fornire le conoscenze legate allo sviluppo di interpreti e compilatori di linguaggi di programmazione
Competenze acquisite
Il corso fornira' gli strumenti per comprendere la struttura di interpreti e compilatori e e i dettagli delle principali tecniche comunemente utilizzate.
Capacità acquisite al termine del corso:
L'obiettivo del corso e' quello di consentire agli studenti di progettare e realizzare un interprete o compilatore di un linguaggio di programmazione.
Metodi Didattici
Numero di ore totali del corso: 225
Numero di ore per studio personale e altre attività formative di tipo individuale: 147
Numero di ore relative alle attività in aula: 64
Numero di ore relative ad attività di laboratorio (lezioni in laboratorio): 12
Numero di ore per prove in itinere: 2
Altre Informazioni
Orario di ricevimento
Giovedi dalle 9.30 alle 10.30 o per appuntamento (contattare il docente per e-mail)
Modalità di verifica apprendimento
Modalità:
Scritto, Orale e Progetto
Programma del corso
Linguaggi e macchine astratte loro associate. Modalita' di realizzazione dei linguaggi: interpretazione, compilazione, supporto a tempo di esecuzione. Introduzione ai compilatori; fasi di compilazione Grammatiche e Linguaggi: richiami dei concetti base. Analisi semantica e generazione del codice: cenni di semantica operazionale e denotazionale, generazione del codice guidata dalla sintassi. Cenni di ottimizzazione del codice. Proprieta' del codice generato: semantica assiomatica, verifica statica di proprieta'.