Compilatori (2004/2005)

Corso disattivato non visibile

Codice insegnamento
4S00041
Docente
Nicola Fausto Spoto
crediti
5
Altri corsi di studio in cui è offerto
Lingua di erogazione
Italiano
Sede
VERONA
Periodo
2° Q dal 10-gen-2005 al 11-mar-2005.

Orario lezioni

2° Q
Giorno Ora Tipo Luogo Note
martedì 11.30 - 13.30 lezione Aula B  
mercoledì 11.30 - 13.30 lezione Aula B  
venerdì 9.30 - 10.30 lezione Aula B  

Obiettivi formativi

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.

Programma

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

Il corso si svolge in 44 lezioni, due terzi delle quali frontali, e un terzo delle quali in laboratorio. Gran parte del materiale didattico verrà fornito dal docente sotto forma di dispense.

Testi di riferimento
Autore Titolo Casa editrice Anno ISBN Note
Andrew W. Appel Modern Compiler Implementation in Java Cambridge University Press 1999 0521583886 Testo di consultazione sporadica. Consigliato solo per i primi tre capitoli.

Modalità d'esame

L'esame consiste in una prova scritta e in un progetto.

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

Il progetto consiste nella modifica o integrazione del compilatore descritto a lezione con nuovi costrutti linguistici o nuove tecniche di implementazione. Il progetto verrà svolto dagli studenti in gruppi di uno, due o tre persone. La sua realizzazione richiede la conoscenza della programmazione in Java. Il progetto può essere valutato fino a 10 punti. La consegna viene fatta via internet entro l'ultima sessione d'esame relativa al corso, con votazione massima discendente con l'allontanarsi dalla fine del corso.

Materiale didattico

Documenti