Linguaggi e compilatori (2016/2017)

Codice insegnamento
4S02726
Crediti
12
Coordinatore
Roberto Giacobazzi
L'insegnamento è organizzato come segue:
Modulo Crediti Settore disciplinare Periodo Docenti
COMPILATORI 6 INF/01-INFORMATICA II sem. Alessandra Di Pierro
LINGUAGGI 6 INF/01-INFORMATICA I sem. Roberto Giacobazzi

Obiettivi formativi

Scopo del corso è quello di insegnare il funzionamento e l'implementazione dei principali costrutti dei linguaggi di programmazione con una panoramica dei vari linguaggi, dai linguaggi imperativi, ai linguaggi ad oggetti, dai linguaggi funzionali ai linguaggi logici. Lo studente sarà chiamato a sviluppare sotto la guida del docente un interprete per un linguaggio ad oggetti imperativo-funzionale, implementato in OCAML.

Programma

Introduzione al corso, Basi matematiche, teoremi di punto fisso, Macchine astratte, Semantica operazionale, Semantica denotazionale, Il Linguaggio OCAML, Tipi di dato, Espressioni, blocchi, funzioni e procedure, Classi e Oggetti (slides), Passaggio dei parametri, Gestione della memoria.

Modalità d'esame

L’esame di Linguaggi e Compilatori consiste nello svolgimento di un progetto di Linguaggi, l’esame di Compilatori (da definire a cura del Docente titolare) ed un orale individuale. Il voto finale è la media delle prove arrotondata per eccesso.

Per la parte di Linguaggi, l’esame consiste nella realizzazione di uno dei progetti sotto proposti. I gruppi (massimo 3 studenti) dovranno sviluppare il progetto scelto, producendo un elaborato scritto (possibilmente in inglese) che riporti le specifiche e la implementazione del progetto scelto, comprensivo di una fase di testing del progetto su alcuni esempi che si ritengono significativi. I gruppi sono liberi di interpretare quanto non specificato nella consegna del progetto secondo il loro gusto e le loro scelte progettuali. La valutazione del progetto riguarderà: grado di originalità (anche rispetto ad altri progetti), qualità delle scelte progettuali, livello di dettaglio dell’elaborato scritto, e significatività degli esempi proposti per verificare la corretta implementazione del progetto. Agli studenti, in fase di esame orale, sarà richiesto di eseguire le specifiche sugli esempi proposti.
I progetti possono essere consegnati in una qualsiasi nelle date di appello definite a calendario, per la parte di Linguaggi a iniziare dal primo appello di Febbraio. Gli orali saranno svolti nelle date di appello definite a calendario. La validità dei progetti di Linguaggi svolti è di 1 anno accademico. Eventuali appelli straordinari possono essere richiesti ed attivati solo su richiesta di almeno 3 gruppi. Contattare il Tutor (Emanuele Falzone) per la composizione dei gruppi. Una volta costituito il gruppo gli studenti dovranno scegliere uno dei progetti indicati dal docente e comunicarlo al Tutor per email.

Statistiche per i requisiti di trasparenza (Attuazione Art. 2 del D.M. 31/10/2007, n. 544)

I dati relativi all'AA 2016/2017 non sono ancora disponibili