elenco   
        corso   

Linguaggi

Codice: AA029Crediti: 6Semestre: 1Sigla: LIN 
 
Settore disciplinare: INF/01 - Informatica

Docente

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

Prerequisiti

Nessuno

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 orientati ad oggetti 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

Functional, imperative and object-oriented languages. Development of various implementations (interpreters, translators) as refinements of an executable specification of the denotational semantics (in ML). Refinements are based on formal methods, including abstract interpretation and partial evaluation.

Programma

  1. Macchine astratte, linguaggi, interpretazione e compilazione (2 ore).
  2. Richiami di semantica, ML come metalinguaggio (3 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 (3 ore).
  7. Gestione della memoria (1 ora).
  8. Specializzazione, traduzione e strutture a run time (2 ore).
     

Bibliografia

T.W. Pratt & M.V. Zelkowitz, Programming languages. Design and implementation. Prentice-Hall 1996.

Modalità di esame

Scritto e orale

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


home


email