Dettagli sull'Insegnamento per l'A.A. 2013/2014
Nome:
Linguaggi di Programmazione e Compilatori / Programming Languages and Compilers
Informazioni
Crediti:
: Laurea in Informatica 6 CFU (b)
Erogazione:
Laurea in Informatica 3° anno curriculum Generale Obbligatorio
Lingua:
Italiano
Prerequisiti
Conoscenza delle nozioni base della teoria dei linguaggi formali e della programmazione
Obiettivi
Nel corso viene illustrata la struttura dei compilatori e sono presentate le principali metodologie impiegate nelle varie fasi del processo di compilazione, in particolare i principi e le tecniche della parte di analisi di un compilatore
Sillabo
- Elementi di teoria di linguaggi formali. Introduzione ai compilatori: il modello analisi-sintesi, fasi della compilazione, interpreti
- Architettura e ruolo dell'analizzatore lessicale: tokens-patterns-lessemi, buffering dell'input, algoritmo di Thompson
- LEX: architettura software e sintassi
- Analisi sintattica: parsing top-down, parsing bottom-up. Parsing predittivo non ricorsivo
- Parsing LR: tecniche SLR, LALR, LR canonica
- Gerarchia di grammatiche LR e gestione di grammatiche ambigue
- YACC: architettura software e sintassi
- Traduzione guidata dalla sintassi. Definizioni dirette dalla sintassi: attributi ereditati e sintetizzati, definizioni con S-attributi, definizioni con L-attributi
- Schemi di traslazione. Analisi semantica e type checking
- Generazione di codice intermedio. Three-address code: sintassi ed esempi di generazione
Descrittori di Dublino
Alla fine del corso, lo studente dovrebbe
- conoscere la struttura e il ruolo dei compilatori, conoscere e capire i principi e le tecniche utilizzate nelle varie fasi del processo di compilazione
- applicare le metodologie studiate allo sviluppo di semplici progetti software riguardanti la costruzione di parti di compilatore con l’ausilio di strumenti quali Lex e Yacc
- saper valutare le caratteristiche delle componenti lessicali e sintattiche di una specifica di traduzione guidata dalla sintassi e scegliere la soluzione più adatta al suo sviluppo
- capire e saper spiegare le relazioni fra strumenti e risultati provenienti dalla teoria dei linguaggi formali e le loro applicazioni nelle fasi di analisi del compilatore
- essere capace di leggere e capire altri testi su argomenti correlati
Testi di riferimento
- A.V. Aho, R. Sethi, J.D. Ullmann, Compilers, principles, techniques and tools , Addison-Wesley, Reading, Mass.
Modalità d'esame
Prova scritta (parziale + finale) sugli argomenti trattati nel corso
Aggiornamenti alla pagina del corso
Le informazioni sulle editioni passate di questo corso sono disponibili per i seguenti anni accademici:
Per leggere le informazioni correnti sul corso, se ancora erogato, consulta il catalogo corsi di ateneo.
Ultimo aggiornamento delle informazioni sul corso: 25 febbraio 2014, 12:09