| | | corso | | | | |
Principi dei linguaggi di Programmazione
Codice: | 379AA | Crediti: | 12 | Semestre: | 1-2 | Sigla: | 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
Tel. 0502212781Paradigmi di programmazione
Docente
Marco Bellia
Tel. 0502212781Prerequisiti
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: | 28 | Ore 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