Diario delle lezioni¶
Potete trovare informazioni sulle modalità d'esame e sull'elenco degli argomenti che costituiscono il programma nella pagina di Informazioni sull'insegnamento,
Il seguente diario riporta gli argomenti e il materiale didattico e di supporto relativo sia alle lezioni già svolte (riguardo alle quali costituisce il programma d'esame de facto), che alle lezioni ancora da svolgere, per le quali è da intendersi del tutto indicativo (sia riguardo alle date che al contenuto).
Num
Data
Argomento
Materiale didattico
1
Mar 3/3
Administrivia; introduzione a Python
2
Ven 6/3
Strutture dati ed algoritmi elementari su alberi e grafi
3
Mar 10/3
Ripasso su grammatiche e linguaggi
4
Ven 13/3
Alberi di parsing e derivazioni, ambiguità (casi notevoli)
5
Mar 17/3
Introduzione al Parsing
6
Ven 20/3
Caso generale non direzionale (CYK)
7
Mar 24/3
Linguaggi regolari e automi a stati finiti
8
Ven 27/3
Parsing top-down (NPDA, simulazione BF e DF)
9
Mar 31/3
Recursive descent (con generazione automatica del parser)
10
Ven 10/4
Parsing bottom-up (simulazione BF e DF)
11
Mar 14/4
Parsing deterministico Top-Down (LL)
12
Ven 17/4
13
Mar 21/4
14
Ven 24/4
Parsing deterministico Bottom-Up (LR)
15
Mar 28/4
ANTLR: grammatiche, tokenizer, parser (visitor e listener)
DAR 1-2, 9.1-2; H15
16
Mar 5/5
DAR 3-4i; H16
17
Ven 8/5
Dall'albero di parsing all'AST
18
Mar 12/5
Traduzioni orientate ai dati
[DAR 8]
19
Ven 15/5
Traspilazione (verso Javascript e l'AST di Python)
20
Mar 19/5
Symbol table (e scoping)
ICD 3; [DAR 8.4; MCD 2.11]
21
Ven 22/5
Interpreti ricorsivi (e funzioni)
ICD 4; [MCD 6.1-2]
22
Mar 26/5
Type checking (statico per tipi primitivi)
ICD 5
23
Ven 29/5
Interpreti iterativi (code threading e VM a pila)
MCD 5.1, 6.3
24
Ven 5/6
Generazione di codice (con l'IR di LLVM)
ICD 6.1-6
Legenda
Le sigle utilizzate per i riferimenti al materiale didattico sono le seguenti:
TPT si riferisce a The Python Tutorial,
PT si riferisce a Parsing Techniques. A Practical Guide,
ICD si riferisce a Introduction to Compiler Design,
MCD si riferisce a Modern Compiler Design,
DAR si riferisce a The Definitive ANTLR 4 Reference,
H si riferisce agli Handout del docente,
Accanto a ciascun riferimento che reca un numero di capitolo possono trovarsi dei numeri di sezione essi sono da intendersi nel seguente modo:
se assenti: l'intero capitolo è parte del programma (ad esempio, con "TPT 5" si intende l'intero capitolo 5 di The Python Tutorial),
se presenti (fuori parentesi): solo le sezioni indicate sono parte del programma (ad esempio, con "PT 2 1-4, 9" si intende che del capitolo 2 di Parsing Techniques. A Practical Guide sono strettamente parte del programma solo le sezioni 1, 2, 3, 4 e 9),
se presenti tra parentesi quadre: le sezioni indicate sono letture caldamente raccomandate, ma facoltative (ad esempio con "PT 2 [5-8, 10-12]" si intende che del capitolo 2 di Parsing Techniques. A Practical Guide è consigliata la lettura delle sezioni 5, 6, 7, 8, 10, 11 e 12).