Foto del docente

Enrico Denti

Professore associato confermato

Dipartimento di Informatica - Scienza e Ingegneria

Settore scientifico disciplinare: ING-INF/05 SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Coordinatore del Corso di Laurea in Ingegneria informatica

Contenuti utili

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