Compilatori (2008/2009)

Corso a esaurimento

Codice insegnamento
4S00041
Crediti
5
Coordinatore
Nicola Fausto Spoto
L'insegnamento è organizzato come segue:
Modulo Crediti Settore disciplinare Periodo Docenti
Teoria 4 INF/01-INFORMATICA 2° Q Nicola Fausto Spoto
Laboratorio 1 INF/01-INFORMATICA 2° Q Nicola Fausto Spoto

Obiettivi formativi

Modulo: Teoria
-------
Far conoscere gli elementi di base della teoria della compilazione dei linguaggi di programmazione. Il corso presenta le diverse fasi di compilazione di un semplice linguaggio imperativo orientato agli oggetti. La teoria viene condotta in parallelo agli esperimenti su un compilatore di esempio.

Attivita' formative.

Il corso si svolge in 44 ore di lezione, due terzi delle quali
frontali, e circa un terzo delle quali in laboratorio. Il materiale didattico viene fornito dal docente sotto forma di dispense.


Modulo: Laboratorio
-------
Verra' sviluppato un piccolo cimpilatore per espressioni aritmetiche e quindi si iniziera' lo sviluppo del progetto finale.

Programma

Modulo: Teoria
-------
* Introduzione al corso e alla tecnologia dei compilatori.
* Analisi lessicale.
* Analisi sintattica e classi di linguaggi.
* Sintassi astratta.
* Analisi semantica (type-checking).
* Codice intermedio bytecode.
* Generazione del codice bytecode.


Modulo: Laboratorio
-------
Fare riferimento alla pagina del corso di Compilatori.

Modalità d'esame

Modulo: Teoria
-------
L'esame consiste in una prova scritta e in un progetto.

Nella prova scritta lo studente deve risolvere tre esercizi, che hanno lo scopo di verificare la sua preparazione sugli argomenti trattati a lezione. Tali esercizi possono anche richiedere l'applicazione di alcuni risultati teorici descritti a lezione. La prova scritta puo' essere valutata fino a 24 punti.

Il progetto, facoltativo, consiste nella modifica o integrazione del compilatore descritto a lezione con nuovi costrutti linguistici o nuove tecniche di implementazione. Esso viene svolto dagli studenti in gruppi di uno, due o tre persone. La sua realizzazione richiede la conoscenza della programmazione in Java. La consegna viene fatta via internet entro luglio ed e' indipendente dallo scritto. Chi consegna
entro aprile ottiene massimo 10 punti. Chi consegna entro maggio ottiene massimo 9 punti. Chi consegna entra giugno ottiene massimo 8 punti. Chi consegna entro luglio ottiene massimo 7 punti. Oltre tale data non e' piu' possibile consegnare il progetto.


Modulo: Laboratorio
-------
Fare riferimento alla pagina del corso di Compilatori.

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

Statistiche esiti
Esiti Esami Esiti Percentuali Media voti Deviazione Standard
Positivi 46.93% 25 4
Respinti 2.04%
Assenti 9.18%
Ritirati --
Annullati 41.83%
Distribuzione degli esiti positivi
18 19 20 21 22 23 24 25 26 27 28 29 30 30 e Lode
4.3% 6.5% 8.6% 10.8% 8.6% 4.3% 2.1% 2.1% 6.5% 10.8% 4.3% 0.0% 6.5% 23.9%

Valori relativi all'AA 2008/2009 calcolati su un totale di 98 iscritti. I valori in percentuale sono arrotondati al numero intero più vicino.