Principi di Linguaggi di Programmazione

COMPILATORI

LAUREA Magistrale in INFORMATICA

Università di Pisa
Anno Accademico 2011-2012
docente: prof. Marco Bellia


Guida al calendario e al materiale di studio: Qui è riportato l'argomento trattato e il materiale con cui potete procedere al relativo studio. Questo materiale fa riferimento ad un testo e a lucidi: Questi non sono intesi in alternativa tra loro. I lucidi devono essere utilizzati come guida all'apprendimento e il testo come completamento e chiarimento di quanto riportato sui lucidi. Ciò evidenzia il fatto che taluni argomenti introducono formulazioni e/o riflessioni non presenti nel testo

mercoledì 21/9 Introduzione: Macchine Astratte, interprete compilatore. FrontEnd, BackEnd cap1* lucidi
venerdì 23/9 Fasi. Realizzazione (Compiler-Compiler). Scanner cap2*, cap11* lucidi
mercoledì 28/9 Lessico. Definizione:Espressioni e Grammatiche Regolari. Riconoscimento: Automi e Drivers. cap3.1-3.3*, 3.6-3.8* **
esercizio
venerdì 30/9 Lessico: Diagrammi, Minimizzazione, Ottimizzazione (dotted automata) cap3.4, 3.9* **
mercoledì 5/10: h.12-13 Lessico: Esercizi e introduzione al Lex (da concludere venerdì) cap3.5* pacchetto Lex
venerdì 7/10 Sintassi: Gerarchie di Chomsky. FSA e L3. Deriva su stringhe e su PT. L(G). Ambiguità. Th. Tarski cap4-4.3 FSA vs. L3
Lucidi (1-16)
mercoledì 13/10 Analisi Top-down e Bottom-up: =>l, LSF, =>r, RSF, completezza, maniglia. Parser Predittivi. - Lucidi (17-23)
Lucidi (1-12)
venerdì 14/10 LL(k): Parser Predittivi Ricorsivi. Parser Predittivi a tabella cap4.4 Lucidi (13-32)
mercoledì 19/10 Esercizi   Esercizi discussi e da discutere
venerdì 21/10 Analisi Bottom-up: SLR. Viable Prefixes, Items, Valid Items, Collezione LR(0) cap4.5, cap4.7 Lucidi (1-22)
mercoledì 26/10 Analisi SLR(1) e automi shift-reduce SLR - Conflitti S/R e R/R - esercizi cap4.7 Lucidi (22-26)
venerdì 28/10 Conflitti: Condizione necessaria ma non sufficiente. Analisi LR(1) e Analisi LALR(1) - esercizi cap4.7-cap4.8 Lucidi(26-46)
ExTree
merceledì 2/11 sospensione disattica: prove intermedie    
venerdì 4/11 sospensione disattica: prove intermedie    
mercoledì 9/11 sospensione disattica: assemblea Facoltà    
venerdì 11/11 Esercitazione in Aula   SLR/LR/LALR
mercoledì 16/11 Attribute Grammars: Sintassi e Semantica cap5.1-5.2 Lucidi (1-25)
venerdì 18/11 Sintetizzati e Ereditati. Esecutori. cap5.3-5.7 Lucidi (26-50)
mercoledì 23/11 Esecutori: applichiamoli - Esercizi Preliminari -

Lucidi (50-fine)
Yacc: Esercizio (.zip)

venerdì 25/11 Analisi Statica: Principali Problemi - Lucidi (1-38)
Esercizi Preliminari
mercoledì 30/11 Analisi Statica: Tipi cap6.1-6.5 Lucidi (39-fine)
venerdì 2/12 Generazione di codice : Codice 3 indirizzi - Attributi - Effetti Laterali cap8.1-8.3 lucidi
mercoledì 7/12 Generazione di codice : Trasferimenti di controllo cap8.4-8.6 lucidi
venerdì 9/12 Generazione di codice : Esercizi   Yacc: Semplice
mercoledì 14/12 Generazione di codice : Casi Particolari (schemi ascendenti)   esercizi(ex1-2)
venerdì 16/12 Generazione di codice : Esercizi   esercizi(ex3-4)
Lunedì 19/12 Pre-Appello    

*[AHO] - vedi riferimenti bibliografici in Notizie Essenziali
**: seconda parte dei lucidi scaricati per la volta precedente