Compilers (2004/2005)

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 10, 2005 al Mar 11, 2005.

Lesson timetable

Second four-month term
Day Time Type Place Note
Tuesday 11:30 AM - 1:30 PM lesson Lecture Hall B  
Wednesday 11:30 AM - 1:30 PM lesson Lecture Hall B  
Friday 9: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.

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.

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.

Reference books
Author Title Publisher Year 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.

Assessment methods and criteria

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.

Teaching aids

Documents