Il corso insegna i concetti fondamentali che stanno alla base della progettazione ed implementazione di un linguaggio di programmazione. Si studia il ruolo centrale dei tipi e della semantica, operazionale e denotazionale, nella comprensione e progettazione di un linguaggio di programmazione. Si impara a derivare sistematicamente interpreti e macchine astratte da una corretta e ben formalizzata definizione del linguaggio. Il corso ha come prerequisiti i corsi del I e II anno ed è propedeutico al corso di "Compilatori".
Interpreti e macchine astratte;
Descrizione formale di un linguaggio di programmazione: sintassi e semantica;
Introduzione al linguaggio ML;
Ambiente: nomi e tipi;
Gestione della memoria;
Controllo: strutturazione ed astrazione;
Dati: strutturazione ed astrazione;
Riesame del paradigma orientato a oggetti (opzionale);
Cenni ai paradigmi funzionale e logico (opzionale).
Autore | Titolo | Casa editrice | Anno | ISBN | Note |
Jeffrey D. Ullman | Elements of ML Programming (Edizione 2) | Prentice Hall | 1998 | 0-13-79038 | Libro di riferimento per il linguaggio ML |
Maurizio Gabbrielli, Simone Martini | Linguaggi di programmazione: principi e paradigmi (Edizione 2) | McGraw Hill | 2011 | 88-386-626 | Adottato |
Lawrence C. Paulson | ML for the Working Programmer (Edizione 2) | Cambridge University Press | 1996 | 0-521-5654 | Libro di riferimento per il linguaggio ML |
Guy Cousineau, Michel Mauny | The functional approach to programming (Edizione 1) | Cambridge University Press | 1998 | 0-521-5768 | Libro di riferimento per il linguaggio ML |
Xavier Leroy et al. | The Objective Caml System | 2004 | Sito del linguaggio OCAML |
Esame mediante prove parziali:
questa modalità vale solo per il primo appello dopo la fine delle lezioni, ovvero per la sessione di marzo 2006, essendo il corso nel II quadrimestre. In questa modalità, l'esame consta di due compiti scritti di due ore ciascuno (C1 e C2). Il voto d'esame è dato da: 50% C1 + 50% C2. Passato il primo appello dopo la fine delle lezioni, le prove parziali non valgono più nulla.
Esame senza prove parziali:
in questa modalità, l'esame consta di un unico compito scritto (E), di difficoltà tale da uguagliare C1 + C2, il cui voto determina il voto d'esame. Questa modalità vale per tutti gli appelli, incluso il primo dopo la fine delle lezioni. Tuttavia chi sostiene l'esame E al primo appello perde il voto maturato con 50% C1 + 50% C2.
Nota: il primo compito (C1) si terrà tentativamente l'8 febbraio 2006; il secondo compito (C2) si terrà nella stessa data, ora e luogo dell'esame E della sessione di marzo (naturalmente contenuto e durata di C2 ed E saranno diversi).
Registrazione: a ogni sessione d'esame ci saranno due date: una per lo scritto ed una per registrare il voto. Per chi sostiene l'esame e lo registra nella stessa sessione, è sufficiente iscriversi alla prima. Iscriversi alla seconda data è necessario per chi ha sostenuto l'esame in una sessione precedente, ma non lo ha registrato.
Regolamento: tutti gli elaborati sono individuali; è severamente vietato copiare e scambiare/passare/condividere codice. Tutti gli elaborati che mostrano di essere stati copiati ricevono voto 0, senza distinzione tra chi copia e chi fa copiare.
******** CSS e script comuni siti DOL - frase 9957 ********p>