elenco   
        corso   

Linguaggi di Programmazione: Classificazione e Macchine Astratte D

(Corso di Diploma in Informatica)

Codice: 5I017Crediti: 6Semestre: 1Sigla: LCM 

Docente

Gianluigi Ferrari   giangi@di.unipi.it  Stanza 281  Tel. 0502212766

Prerequisiti

Obiettivi di apprendimento

Lo scopo del corso \`e quello di analizzare i principi ed i meccanismi che stanno alla base del progetto, della realizzazione e dell'uso dei linguaggi di programmazione. Il corso intende sviluppare una capacità critica che permetta di valutare l'adeguatezza di un paradigma di programmazione, e quindi di un linguaggio di programmazione, per la soluzione di uno specifico problema applicativo.

Descrizione

Durante il corso si esamineranno i principali paradigmi di programmazione, e le loro tecniche di realizzazione. Il corso prevede una attivit\`a di laboratorio in cui verranno sperimentale alcune tecniche di realizzazione dei linguaggi di programmazione.

English Description

Unlike courses that teach a specific programming language, this is a course about programming languages. The course addresses the following questions: - What are good ways to express programming paradigms? - How does one precisely describe and implement the various features of programming languages?

Programma

- Linguaggi di Programmazione: paradigmi Linguistici, - Linguaggi di Programmazione e Macchine astratte, - La struttura di un compilatore (cenni), - Introduzione alla programmazione in Java, - La semantica formale come meccanismo per la descrizione dei linguaggi di programmazione, - Il controllo statico dei tipi, - La struttura del sistema a tempo di esecuzione: record di attivazione e meccanismi per la gestione dell'ambiente (scoping statico e scoping dinamico) - Il passaggio dei parametri, - La gestione della memoria: algoritmi di garbage collection. - I linguaggi orientati ad oggetti: Classi e Oggetti, - La struttura del ssitema a tempo di esecuzione di linguaggi orientati ad oggetti, - I Linguaggi Concorrenti (cenni)
Ore lezione: 25Ore esercitazione: 15   

Bibliografia

T. Pratt, M. Zelkowitz Programming Languages: Design and Implementation. Prentice Hall, 1996. A. Aho, R. Sethi, J. Ulmann, Compilers: Principles, Techniques and Tools. Addison Wesley, 1994 (Capitoli 1 e 2). Plotkin, G. A Structural Approach to Operational Semantics, DAIMI Report FN-19, Dept. of Computer Science, Aarhus, 1981. Materiale Didattico On-line: http://www.di.unipi.it/~giangi/CORSI/LCM/mdid.html

Modalità di esame

L'esame consiste di un progetto di programmazione e di una prova orale

Ulteriore pagina web del corso: http://www.di.unipi.it/~giangi/CORSI/LCM/infolcm.html


home


email