Compilers (2005/2006)

Course Not running, not visible

Course code
4S00041
Name of lecturer
Nicola Fausto Spoto
Number of ECTS credits allocated
5
Other available courses
Language of instruction
Italian
Location
VERONA
Period
Second four month term dal Jan 8, 2006 al Mar 9, 2006.

Lesson timetable

Second four month term
Day Time Type Place Note
Tuesday 11:30 AM - 1:30 PM lesson Lecture Hall B  
Wednesday 8:30 AM - 9:30 AM lesson Lecture Hall B  
Friday 8:30 AM - 10:30 AM lesson Lecture Hall B  

Learning outcomes

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 un terzo delle quali in laboratorio. Gran parte del
materiale didattico viene fornito dal docente sotto forma di dispense.

Syllabus

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

Reference books
Author Title Publisher Year ISBN Note
Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman Compilers - Principles, Techniques, and Tools Addison Wesley 1986 0201100886

Assessment methods and criteria

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 luglio
ottiene massimo 8 punti. Oltre tale data non e' piu' possibile
consegnare il progetto.