Università degli studi dell'Insubria

FONDAMENTI DEI LINGUAGGI DI PROGRAMMAZIONE

A.A. di erogazione 2014/2015

Laurea triennale in INFORMATICA (A.A. 2013/2014)
Docenti
Anno di corso: 
2
Tipologia di insegnamento: 
Affine/Integrativa
Settore disciplinare: 
INFORMATICA (INF/01)
Crediti: 
6
Ciclo: 
Secondo Semestre
Ore di attivita' frontale: 
48
Dettaglio ore: 
Lezione (48 ore)

Obiettivi dell’insegnamento e risultati di apprendimento attesi

Obiettivo di questo corso è presentare i concetti di base dei linguaggi di programmazione ed in particolare gli aspetti relativi ai processi di compilazione ed esecuzione di un linguaggio. Il corso consiste di una parte teorica relativa alla presentazione alle tecniche di costruzione di analizzatori lessicali e analizzatori sintattici e ad una parte applicativa relativa alla realizzazione di applicazioni sui linguaggi di programmazione, in questa seconda parte vengono presentate le tecniche di gestione degli scope, del type checking e della traduzione/esecuzione di un linguaggio di programmazione.
Conoscenza e capacità di comprensione (knowledge and under standing)
Al termine del corso lo studente possiede le conoscenze necessarie alla comprensione delle caratteristiche precipue di un linguaggio di programmazione e per la realizzazione di applicazioni su un linguaggio di programmazione.
Capacità di applicare conoscenza e comprensione (applying knowledge and understanding)
Al termine del corso lo studente è in grado di utilizzare gli strumenti per la generazione automatica di analizzatori lessicali e sintattici per costruire strumenti di analisi, traduzione o esecuzione di un linguaggio di programmazione.
Autonomia di giudizio
Al termine del corso lo studente è in grado di scegliere in autonomia di giudizio le soluzioni più adatte alla realizzazione di una specifica applicazione sui linguaggi.
Abilità comunicative
Al termine del corso lo studente è in grado di comunicare in modo compiuto e con la corretta terminologia le caratteristiche di un linguaggio di programmazione e di un’applicazione su tale linguaggio.

Modalità di verifica dell’apprendimento
La prova d’esame consiste in una prova orale. Lo scopo della prova è quello di verificare che lo studente abbia compreso le caratteristiche dei linguaggi di programmazione e delle applicazioni sui linguaggi, in particolare compilatori ed interpreti.
Il voto è espresso in trentesimi.

Prerequisiti: 

Lo studente che affronta questo corso deve possedere una conoscenza dettagliata dell’architettura degli elaboratori, della programmazione in linguaggio Java e delle strutture dati fondamentali.

Caratteristiche principali dei linguaggi di programmazione: astrazioni, type-checking, binding, modello implementativo. Lezioni ore 4;
- Sintassi, semantica statica e sematica dinamica. lezioni ore 2;
- Struttura di un’applicazione sui lunguaggi, traduttori e interpreti. Lezioni ore 4;
- Linguaggi regolari. Generazione di riconoscitori di linguaggi regolari. Approcci implementativi. Lezioni ore 6;
- Linguaggi regolari. Alberi di parsing. Ambiguità e ricorsione. Tecniche di parsing. Lezioni ore 6;
- Parser top-down a discesa ricorsiva; grammatiche LL(k). Lezioni ore 6;
- Uno strumento per la generazione automatica di analizzatori lessicali e parser top-down a discesa ricorsiva (ANTLR). Lezioni ore 4;
- Tecniche di visita dell’albero di parsing: pattern basati su listener e visitor. Lezioni ore 4;
- Semantica statica, gestione dei simboli: symbol table, scope unitari, albero di scope e scope per dati aggregati. Lezioni ore 4;
- Type checking statico. Lezioni ore 4;
- Traduzione in codice intermedio. Lezioni ore 4;

- Libro di testo: Terence Parr, Language implementation patterns. The Pragmatic Bookshelf, 2009
- Altro materiale (disponibile sul sito di e-learning): Slides, dispense, esempi di applicazioni.

Cerchi il programma? Potrebbe non essere ancora stato caricato o riferirsi ad insegnamenti che verranno erogati in futuro.
Seleziona l‘anno in cui ti sei immatricolato e troverai le informazioni relative all'insegnamento del tuo piano di studio.

A.A. 2015/2016

Anno di corso: 2
Curriculum: PERCORSO COMUNE

A.A. 2014/2015

Anno di corso: 3
Curriculum: PERCORSO COMUNE