Dettagli sull'Insegnamento per l'A.A. 2012/2013
Nome:
Linguaggi di Programmazione e Compilatori / Programming Languages and Compilers
Informazioni
Erogazione:
Laurea in Informatica 3° anno curriculum Generale Obbligatorio
Lingua:
Italiano
Prerequisiti
Il corso richiede come pre-requisiti una conoscenza delle nozioni base della teoria dei linguaggi formali e della programmazione.
Obiettivi
Nel corso viene illustrata la struttura dei compilatori e le principali metodologie impiegate nelle varie fasi del processo di compilazione. L'obiettivo è quello di preparare gli studenti allo sviluppo di progetti software riguardanti la costruzione di parti di compilatore con l’ausilio di strumenti quali Lex e Yacc.
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
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: 01 ottobre 2012, 13:02