2012
2012
Sei collegato come utente non registrato
Riepilogo dell'insegnamento: Compilatori
Informazioni generali
Corso di Laurea Informatica Percorso Corsi di Laurea in Informatica
CFU 6 Università PALERMO
Ore di didattica frontale per CFU 8 Settore Scientifico Disciplinare INF/01
   

6 cfu così ripartiti nelle aree:

  • 6 CFU nell'area D - Linguaggi

Sillabo dell'insegnamento

  • D - Linguaggi
    • * LF - Linguaggi Formali
      Linguaggi di Programmazione e Processori di Linguaggi di Programmazione. Analisi Lessicale: Operazioni preliminari. Token e Lessemi. Errori lessicali. Token e espressioni regolari. Definizioni regolari. Eliminazioni di ambiguità. Automi a stati finiti. Implementazioni di DFA. Simulazioni di NFA.
    • * LF - Linguaggi Formali
      Analisi sintattica: Grammatiche context‐free. Alberi di derivazione. Grammatiche ambigue. Automi a pila deterministici e non deterministici. Complessità di calcolo di un automa a pila. Algoritmo di Earley. Errori sintattici e metodi di gestione degli errori. Parser a discesa ricorsiva. Parser LL(1). Elinimazione della ricorsione sinistra. Fattorizzazione sinistra. Insiemi First e Follow.
    • * LF - Linguaggi Formali
      Parser shift‐reduce. Parser LR(0). Parser SLR. Parser LR(1). Parser LALR(1). Proprietà dei linguaggi e delle grammatiche LR(k). Confronto tra le grammatiche LL(k) e LR(k). Analisi semantica: Semantica statica e dinamica. Grammatiche con attributi. Semantica guidata dalla sintassi. Albero sintattico decorato. Calcolo degli attributi. Grafo delle dipendenze. Grammatiche con S‐attributi. Grammatiche con L-attributi. Ordinamento topologico del grafo delle dipendenze.
    • * TTCI - Tecniche di Traduzione: Compilatori e Interpreti
      Differenza tra compilazione e interpretazione di un programma. Macchina Virtuale Preprocessore. Linker e Loader. Fasi della compilazione. Front End e Back End. Passate di un compilatore. Generazione automatica di scanner. Flex. Generazione automatica di parser. Bison.
    • * TTCI - Tecniche di Traduzione: Compilatori e Interpreti
      Tabella dei simboli. Vari tipi di implementazioni tramite array, liste concatenate e ABR. Implementazione tramite hash table with chaining. Attributi di visibilità e metodi di realizzazione. Type checking. Equivalenza d tipi. Type coercion. Generazione del codice: Codice intermedio. Codice a tre indirizzi. Strutture dati per l'implementazione del 3AC. Codice per macchina virtuale. P‐code. Ottimizzazione del codice. Esempi di ottimizzazioni indipendenti dalla macchina. Generatori di codice oggetto. Esempi di ottimizzazioni dipendenti dalla macchina.
    • * MATR - Macchine Astratte e Tecniche per la Realizzazione dei linguaggi di programmazione
      Compilatori e Linguaggi. Linguaggi Macchina, Linguaggi Assembly ed evoluzione dei linguaggi di programmazione.

(*) Le sottoaree con asterisco sono quelle che il GRIN ritiene essenziali