Strumenti e materiale di supporto

Questa pagina contiene alcune indicazioni circa il linguaggio di programmazione e lo strumento di generazione automatica di analizzatori lessicali e sintattici adottati per il corso; in futuro conterrà anche del materiale specifico di supporto al corso, come alcune dispense integrative e strumenti software sviluppati dal docente.

Si osserva che, data la maturità culturale che ci si attende dagli studenti che frequentano un insegnamento complementare, il docente non intende fornire alcun supporto all'installazione, configurazione e uso pratico degli strumenti qui descritti.

Python

Gli algoritmi illustrati a lezione saranno presentati attraverso una loro implementazione elementare in Python 3, la scelta del linguaggio è dovuta sia per alla sua leggibilità, che per alla disponibilità di strutture dati elementari (come liste, pile, code e dizionari…) nella sua libreria standard.

Chi non conosce il linguaggio può facilmente apprendere quanto necessario all'uso che ne verrà fatto in questo insegnamento leggendo i primi cinque capitoli da "The Python Tutorial" reperibile sul sito della documentazione ufficiale del linguaggio.

ANTLR

Una volta investigati gli algoritmi di base per l'analisi lessicale e sintattica verrà introdotto uno strumento di generazione automatica per tali analizzatori. Lo strumento scelto è ANTLR, originariamente ideato e sviluppato da Terence Parr.

La documentazione necessaria al suo uso (oltre ai libri indicati nella bibliografia delle informazioni generali sul corso) può essere reperita gratuitamente nel repository ufficiale, in particolare può risultare utile la lettura della guida "Getting Started" e delle indicazioni sull'uso del target per Python 3, così come il repository della versione Python 3 dei programmi di esempio contenuti nel libro "The Definitive ANTLR 4 Reference".

Playground

Al fine di agevolare, sopratutto nelle prime lezioni, l'esplorazione del linguaggio e degli strumenti poi necessari per la realizzazione del progetto, è possibile usare un playground disponibile on-line (attivabile tramite il bottone riportato sopra) che non richiede alcuna installazione, o configurazione, di software.