elenco    
        corso    

Linguaggi di Programmazione: Paradigmi e Macchine Astratte

(Corso di Laurea in Informatica (quinquennale))

Codice: 4I057Crediti: 6Semestre: 1Sigla: LPM 

Docente

Giorgio Levi   levi@di.unipi.it  Tel. 0502212700

Prerequisiti

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

  1. Macchine astratte, linguaggi, interpretazione e compilazione (2 ore).
  2. Richiami di semantica, ML come metalinguaggio (2 ore).
  3. Tipi di dato, tipi e controllo dei tipi (4 ore).
  4. Controllo di sequenza, procedure, ricorsione (5 ore).
  5. Ambiente, scoping, parametri, moduli, classi (6 ore).
  6. Analisi statica (2 ore).
  7. Gestione della memoria (2 ore).
  8. Specializzazione, traduzione e strutture a run time (2 ore).
Ore lezione: 25Ore 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

Ulteriore pagina web del corso: http://www.di.unipi.it/~levi/ProgrammiLPM/pagina.html


home


email