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 25/2
Administrivia; introduzione a Python
2
Ven 28/2
Strutture dati ed algoritmi elementari su alberi e grafi
3
Mar 4/3
Ripasso su grammatiche e linguaggi
4
Ven 7/3
Alberi di parsing, ambiguità (casi notevoli)
5
Mar 11/3
Introduzione al parsing
6
Ven 14/3
Parsing, caso generale non direzionale (CYK)
7
Mar 18/3
Linguaggi regolari e automi a stati finiti
8
Ven 21/3
Parsing top-down (NPDA, simulazione BF e DF)
9
Mar 25/3
Recursive descent (con generazione automatica del parser)
10
Ven 28/3
Parsing bottom-up (simulazione BF e DF)
11
Mar 1/4
Parsing deterministico Top-Down (LL)
12
Ven 4/4
13
Mar 8/4
14
Ven 11/4
Parsing deterministico Bottom-Up (LR)
15
Mar 15/4
ANTLR: grammatiche, tokenizer, parser (visitor e listener)
DAR 1-2, 9.1-2; H15
16
Mar 22/4
DAR 3-4; H16
17
Mar 29/5
Dall'albero di parsing all'AST
18
Mar 6/5
Traduzioni orientate ai dati
[DAR 8]; H18
19
Ven 9/5
Traspilazione (verso Javascript e l'AST di Python)
20
Mar 13/5
Symbol table (e scoping)
ICD 3; [DAR 8.4]; H20
21
Ven 16/5
Interpreti ricorsivi (e funzioni)
ICD 4; [MCD 6.1-2]; H21
22
Mar 20/5
Type checking (statico per tipi primitivi)
ICD 5; H22
23
Ven 23/5
Interpreti iterativi (code threading e VM a pila)
MCD 5.1, 6.3; H23
24
Mar 27/5
Generazione di codice (con l'IR di LLVM)
ICD 6.1-6; H24
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).