FONDAMENTI DELL'INFORMATICA
2o MODULO
(compilatori)
A. A. 1996-97
Dott. Roberto Battiti
Oggetto e obiettivi del corso
Lo scopo del corso è quello di fornire i concetti basilari e gli strumenti per:
- "capire" un linguaggio di programmazione e le sue particolari realizzazioni tramite compilazione ed interpretazione al fine di usarne coscientemente caratteristiche e strutture,
- valutare l'adeguatezza di vari linguaggi nei diversi campi applicativi,
- progettare e realizzare un linguaggio di programmazione. E' inoltre prevista una sperimentazione basata sull'uso di strumenti disponibili sotto Unix (compilatori per vari linguaggi, strumenti per ottenere compilatori a partire dalle specifiche formali).
Argomenti effettivamente svolti
- Introduzione (AASU86), Capitolo 1 e Sezioni 2.1--2.5
- Analisi lessicale, Sezioni 2.6, 3.1--3.4
- Tabelle dei simboli, Sezione 2.7
- Parsing, Sezioni 2.45, 4.1--4.4
- Syntax-directed Translation, Sezioni 2.5, 5.1--5.5
- Type checking, Sezioni 6.2--6.2
- Organizzazione di run-time, Sezioni 7.1--7.3
- Generazione del codice intermedio, Sezioni 8.1--8.3
Le esercitazioni sono state eseguite nei linguaggi ML e Java.
Testi consigliati
A. V. AHO, R. SETHI, J. D. ULLMAN, COMPILERS, Principles, Techniques and Tools, Addison Wesley, Reading, Mass., 1986
Modalità e svolgimento dell'esame
L'esame consiste in una prova scritta ed una orale. Inoltre sono previsti dei brevi progetti durante il corso. Se lo svolgimento del progetto è soddisfacente, i suoi estensori sono esentati dal risolvere gli esercizi della prova scritta relativi alla parte del progetto.
Date dei prossimi appelli d'esame:
Orale: 9.9.97 ore 9,00
Orale: