Diario delle lezioni
- 10/3/11. Presentazione del corso.
Le fasi della compilazione.
- 13/3/11. L'analisi lessicale.
Espressioni regolari.
Automi finiti deterministici e non.
- 17/3/11. Osservazioni sulla generazione automatica di
analizzatori lessicali.
- 21/3/11. Grammatiche context-free. Derivazioni ed alberi
di derivazione. Grammatiche ambigue.
- 28/3/11. Algoritmi di parsing.
Introduzione alle famiglie LL ed LR.
Associatività e precedenza nelle espressioni
aritmetiche.
- 31/3/11. Parsing shift-reduce. Item LR(0), base e chiusura.
- 4/4/11. L'algoritmo LR(0). Conflitti shift-reduce.
- 7/4/11. Il potere espressivo della famiglia LR(k).
- 11/4/11. Parsing top-down: l'algoritmo LL.
Implementazione recursive descent.
- 14/4/11. Calcolo dei "predict set". Funzioni ausiliarie EPS, FIRST e FOLLOW.
- 18/4/11. Introduzione al tool ANTLR.
- 28/4/11. L'algoritmo di parsing LL(*).
- 2/5/11. Limiti dell'algoritmo LL(*).
Gestione delle ambiguità lessicali e sintattiche con ANTLR.
- 5/5/11. I predicati sintattici con ANTLR.
- 9/5/11. Regole complesse con ANTLR. Esercitazione.
- 12/5/11. I predicati semantici di disambiguazione.
- 16/5/11. Esercitazione.
- 19/5/11. Opzioni di output di ANTLR. I template e la libreria StringTemplate.
Grammatiche composite e loro architettura.
- 23/5/11. Esercitazione.
- 26/5/11. Creazione di alberi sintattici: forma implicita (operatori ! e ^) e forma esplicita (rewrite rules).
- 30/5/11. Creazione di alberi sintattici: operatori estesi.
Esercitazione.
- 6/6/11. Esercitazione.
- 9/6/11. Grammatiche su alberi. Esercitazione.
- 13/6/11. Gestione degli errori. Tecniche di error recovery.
Esercitazione. Discussione progetto.
|
|
|