elenco    
        corso    

Principi dei linguaggi di Programmazione

Codice: 379AACrediti: 12Semestre: 1-2Sigla: PLP 
 
Settore disciplinare: INF/01 - Informatica

Obiettivi di apprendimento

Il corso si propone l'obiettivo di presentare i prinicipi e le tecniche per la realizzazione di linguaggi di programmazione. Il corso consiste di due moduli.
     



Moduli:

Tecniche di compilazione

Docente

Marco Bellia   bellia@di.unipi.it  Stanza 330  Tel. 0502212781

     


Paradigmi di programmazione

Docente

Marco Bellia   bellia@di.unipi.it  Stanza 330  Tel. 0502212781

Prerequisiti

Metodi per la definizione di Sintassi e Semantica di Linguaggi
Principi generali di implementazione di linguaggi

Obiettivi di apprendimento

Approfondire le conoscenze di semantica, struttura dei linguaggi e del supporto run-time della relativa macchina astratta, dei paradigmi di programmazione e delle relative metodologie di sviluppo di programmi
Capacità.

Descrizione

Il corso parte dalla definizione di linguaggio e della sua macchina astratta per affrontare le principali tematiche sulla realizzazione dei componenti della macchina. L'analisi č sempre condotta correlando la struttura dei componenti ai meccanismi linguistici supportati e ai significativi vantaggi che questi meccanismi offrono alla metodologia di sviluppo di programmi del linguaggio. A partire da queste conoscenze, studiamo in modo sistematico le caratteristiche di tre paradigmi di programmazione: il paradigma orientato ad oggetti, il paradigma funzionale, il paradigma logico.

English Description

The course covers the main topics on the structure of programming languages from the viewpoints of the runtime support of its abstract machine and of the expressiveness of the supported linguistic constructs. It focuses on the study of three paradigms: Object Oriented, Functional, and Logic. And on the use of them in the various programming methodologies.

Programma

Ambiente: identificatori, valori denotabili, scope statito e dinamico, struttura
Memoria: locazioni, valori memorizzabili, allocazione statica, dinamica, struttura (3h.)
Controllo di valutazione: stato, composizione e espressioni, sequenza e comandi, ricorsione e iterazione, astrazioni
Strutture di dati e tipi: sistema di tipi, equivalenza nominale e strutturale, polimorfismo, garbage collection, astrazioni (4h.)
Il paradigma orientato ad oggetti: Principi, strutture principali, metodologie di programmazione, programmazione in Java. (7h.)
Il paradigma funzionale: Principi, strutture principali, metodologie di programmazione, programmazione in Haskell. (7h.)
Il paradigma logico: Principi, strutture principali, metodologie di programmazione, programmazione in Prolog. (7h.)
Esercitazioni. Applicano queste conoscenze alla stesura di programmi nel paradigma pių adatto e alla ristesura in un paradigma di un programma scritto per un paradigma differente.
Ore lezione: 28Ore esercitazione: 12   

Bibliografia

Testo di riferimento:
Linguaggi di programmazione. Principi e paradigmi.  Gabbrielli Maurizio, Martini Simone, 2011, McGraw-Hill Companies
Materiale integrativo:
Appunti su argomenti vari reperibili quando disponibili, alla pagina del corso,
Materiale di consultazione:
Programming Languages: Design and Implementation (4th edition), Terence W. Pratt, Marvin V. Zelkowitz, 2000, Prentice-Hall




home


email