Anno Accademico: 2024/2025
Votazione: 30 e Lode
La prova finale del corso è preceduta dall'esposizione della attività progettuale associata.
Il titolo della attività progettuale realizzata è Challenge a tema: Linguaggi.
Dall'A.A.2025/2026 l'attività progettuale farà parte del materiale del corso.
In questo senso, in futuro, ci saranno modifiche per estendere, o rendere più idoneo al nuovo contesto, il materiale a contorno dell'attività progettuale.
- Slide di presentazione del materiale.
- Writeup delle soluzioni.
- Demo dettagliate.
-
Grammatica: analisi
1.1 Presentazione della grammatica in Esame.
1.2 Pumping Lemma per dimostrare che la grammatica non è regolare.
1.3 Analisi LL(1) dopo opportune trasformazioni.
1.4 Analisi LR(0) e identificazione dei conflitti.
1.5 Analisi SRL(1). -
Ricorsione: tail-recursion, TRO e trampolini
2.1 Costrutti linguistici e processi computazionali sottostanti e tail recursion.
2.2 Le potenzialità e i limiti del TRO e i trampolini.
2.3 Esempi in JavaScript e Kotlin. -
Scala: costruire nuovi costrutti
3.1 Ingredienti e ricetta per nuovi costrutti.
3.2 Esempio ed utilizzo del nuovo costrutto WriteFile. -
JavaScript: linguaggio dinamico ma vulnerabile
4.1 Type coercion e JSFuck con Function.
4.2 Modello a prototipi e type augmenting e prototype pollution.
Il programma prolog family.pl, non è stato incluso nella discussione dell'esame, purtroppo.