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.

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/2026

Il 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.

2° Anno  Attivato nell'A.A. 2014/2015

InsegnamentiCreditiTAFSSD
12
B
INF/01
6
C
FIS/01
Un insegnamento a scelta tra i seguenti
12
B
ING-INF/05

3° Anno  Attivato nell'A.A. 2015/2016

InsegnamentiCreditiTAFSSD
12
B
ING-INF/05
Un insegnamento a scelta tra i seguenti
Prova finale
6
E
-
Attivato nell'A.A. 2014/2015
InsegnamentiCreditiTAFSSD
12
B
INF/01
6
C
FIS/01
Un insegnamento a scelta tra i seguenti
12
B
ING-INF/05
Attivato nell'A.A. 2015/2016
InsegnamentiCreditiTAFSSD
12
B
ING-INF/05
Un insegnamento a scelta tra i seguenti
Prova finale
6
E
-

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.




S Stage e tirocini presso imprese, enti pubblici o privati, ordini professionali

Codice insegnamento

4S02726

Crediti

12

Coordinatore

Roberto Giacobazzi

Lingua di erogazione

Italiano

L'insegnamento è organizzato come segue:

LINGUAGGI

Crediti

6

Periodo

I semestre

COMPILATORI

Crediti

6

Periodo

II semestre

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

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
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).

Le/gli studentesse/studenti con disabilità o disturbi specifici di apprendimento (DSA), che intendano richiedere l'adattamento della prova d'esame, devono seguire le indicazioni riportate QUI