Studiare
In questa sezione è possibile reperire le informazioni riguardanti l'organizzazione pratica del corso, lo svolgimento delle attività didattiche, le opportunità formative e i contatti utili durante tutto il percorso di studi, fino al conseguimento del titolo finale.
Piano Didattico
Queste informazioni sono destinate esclusivamente agli studenti e alle studentesse già iscritti a questo corso.Se sei un nuovo studente interessato all'immatricolazione, trovi le informazioni sul percorso di studi alla pagina del corso:
Laurea in Informatica - Immatricolazione dal 2025/2026Il piano didattico è l'elenco degli insegnamenti e delle altre attività formative che devono essere sostenute nel corso della propria carriera universitaria.
Selezionare il piano didattico in base all'anno accademico di iscrizione.
1° Anno
Insegnamenti | Crediti | TAF | SSD |
---|
2° Anno Attivato nell'A.A. 2014/2015
Insegnamenti | Crediti | TAF | SSD |
---|
3° Anno Attivato nell'A.A. 2015/2016
Insegnamenti | Crediti | TAF | SSD |
---|
Un insegnamento a scelta tra i seguenti
Insegnamenti | Crediti | TAF | SSD |
---|
Insegnamenti | Crediti | TAF | SSD |
---|
Insegnamenti | Crediti | TAF | SSD |
---|
Un insegnamento a scelta tra i seguenti
Legenda | Tipo Attività Formativa (TAF)
TAF (Tipologia Attività Formativa) Tutti gli insegnamenti e le attività sono classificate in diversi tipi di attività formativa, indicati da una lettera.
Linguaggi e compilatori (2015/2016)
Codice insegnamento
4S02726
Crediti
12
Coordinatore
Lingua di erogazione
Italiano
L'insegnamento è organizzato come segue:
Obiettivi formativi
------------------------
MM: COMPILATORI
------------------------
Il corso introduce gli elementi di base della teoria della compilazione dei linguaggi di programmazione. L'obiettivo e' fornire agli studenti le competenze necessarie per lo sviluppo e l'implementazione di compilatori per linguaggi semplici, le capacita' per poter usare semplici strumenti per l'analisi sintattica e lessicale e la conoscenza delle nozioni teoriche alla base delle varie fasi del processo di compilazione.
------------------------
MM: LINGUAGGI
------------------------
Il corso introduce 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 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 piu' appropriato rispetto all’applicazione che si vuole realizzare.
Programma
------------------------
MM: COMPILATORI
------------------------
Introduzione al corso e alla tecnologia dei compilatori. Analisi lessicale. Analisi sintattica e classi di linguaggi. Sintassi astratta. Analisi semantica (type-checking). Codice intermedio. Generazione del codice intermedio. Generazione del codice macchina.
------------------------
MM: 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, inferenza di tipo e polimorfismo, garbage collection. Esempi di paradigmi di programmazione.
Bibliografia
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 | |
T.W. Pratt e M.V. Zelkowitz | Programming languages: Design and implementation (Edizione 3) | Prentice Hall | 1999 | ||
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 |
Modalità d'esame
------------------------
MM: COMPILATORI
------------------------
L'esame consiste in un progetto realizzato in gruppi e una discussione individuale
------------------------
MM: LINGUAGGI
------------------------
Esame scritto con orale facoltativo (che diventa obbligatorio per ottenere/confermare un voto allo scritto maggiore di 26/30).