Home > Contenuti utili > Proposte di attività progettuali per Linguaggi e Modelli Computazionali M
Proposte di attività progettuali per Linguaggi e Modelli Computazionali M
1) Area "Estensione del progetto MiniC"
Questa macro-area include diverse possibili attività:
- Obiettivo A: attualizzare un vecchio progetto scritto in Java, revisionandolo e attualizzandolo sia sotto il profilo dell'architettura software (obsoleta e discutibile per alcune scelte) sia da quello delle soluzioni tecnico-implementative, ma restando sul linguaggio Java
- [assegnato] Obiettivo B: attualizzare un vecchio progetto scritto in Java, revisionandolo e attualizzandolo sia sotto il profilo dell'architettura software (obsoleta e discutibile per alcune scelte) sia da quello delle soluzioni tecnico-implementative, ma con riscrittura dello stesso con altri linguaggi, namely Scala, Kotlin, Javascript (anche a confronto fra loro)
- Estensione del progetto per includere un linguaggio C-like un po' più completo
- Estensione del progetto per supportare un linguaggio Java-like
2) Esplorazione del linguaggio DART
Studio ed esplorazione comparativa di DART rispetto a Java, Scala, Kotlin (e Javascript), con particolare riferimento agli aspetti funzionali
- costrutti di base, approccio generale
- functional programming
3) Esperimenti con lo strumento AGL
Anche quest'area include varie possibilità:
-
un primo obiettivo può essere sperimentare in generale con lo strumento, utilizzandolo per implementare gli esempi proposti nel corso e, successivamente, una qualche loro estensione (da concordare)
-
un obiettivo più ambizioso, legato al punto (1) sopra, potrebbe consistere nello sfruttare AGL per implementare con tale strumento una nuova versione di "Mini C"
4) Applicazioni di ANTLR e Xtext
Anche quest'area include alcune almeno due possibili attività:
- un primo obiettivo, legato al punto (1) sopra, potrebbe consistere nell'implementare una nuova versione di "Mini C" con ANLTR
-
un altro obiettivo, duale del precedente ma più ampio, potrebbe consistere nell'implementare una nuova versione di "Mini C" conXtext, dunque fornendo anche l'ambiente di supporto
5) Esplorazione e confronto delle parser libraries per Scala
Fino a qualche anno addietro, i parser combinators erano l'unica libreria per la scrittura di parsing in Scala, distribuiti come parte della libreria standard. Poi sono stati separati, e affidati alla community. Nel frattempo è sorta una pluralità di altre librerie sviluppate da terzi.
- Obiettivo del lavoro è sperimentare e confrontare criticamente le librerie disponibili, in particolare quelle che appaiono più promettenti fra quelle elencate qui