| | | corso | | | | |
Linguaggi di Programmazione: Paradigmi e Macchine Astratte
(Corso di Laurea in Informatica (quinquennale))
Codice: | 4I057 | Crediti: | 6 | Semestre: | 1 | Sigla: | LPM | |
Docente
Giorgio Levi
Tel. 0502212700Prerequisiti
I corsi di semantica e linguaggi formali.
Obiettivi di apprendimento
Analizzare i principi ed i meccanismi che stanno alla base del progetto,
della realizzazione e dell'uso dei linguaggi di programmazione. Esaminare i
principali paradigmi di programmazione e le loro tecniche di realizzazione.
Sviluppare una capacità critica che permetta di valutare
l'adeguatezza di
un paradigma (e di un linguaggio) per la soluzione di uno specifico
problema applicativo.
Descrizione
Si introdurranno i costrutti principali dei linguaggi imperativi,
funzionali e logici e si svilupperanno varie implementazioni
(interpretative e compilative) per raffinamenti successivi (usando metodi
formali quali la trasformazione di ricorsione in iterazione, l'eliminazione
dell'ordine superiore, l'interpretazione astratta e la valutazione
parziale) a partire da una semantica formale espressa nel linguaggio ML.
English Description
The course introduces the main constructs of imperative, functional and
logic languages and develops various implementations (both interpretive and
compilative) as refinements (obtained using formal techniques such as
transformation of recursion into iteration, higher order elimination,
abstract interpretation and partial evaluation) of a formal semantics
specified in ML.
Programma
- Macchine astratte, linguaggi, interpretazione e compilazione (2 ore).
- Richiami di semantica, ML come metalinguaggio (2 ore).
- Tipi di dato, tipi e controllo dei tipi (4 ore).
- Controllo di sequenza, procedure, ricorsione (5 ore).
- Ambiente, scoping, parametri, moduli, classi (6 ore).
- Analisi statica (2 ore).
- Gestione della memoria (2 ore).
- Specializzazione, traduzione e strutture a run time (2 ore).
Ore lezione: | 25 | Ore esercitazione: | 15 | | | |
Bibliografia
T.W. Pratt & M.V. Zelkowitz, Programming languages. Design and
implementation. Prentice-Hall 1996.
The Caml Light system documentation and user's manual, INRIA 1995
Modalità di esame
Scritto e orale