2015
2015
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
      * PL-SyA - Syntax Analysis
      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
      * PL-SyA - Syntax Analysis
      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. 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).
    • * LF - Linguaggi Formali
      PL-CSA - Compiler Semantic Analysis
      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. 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.
    • * TTCI - Tecniche di Traduzione: Compilatori e Interpreti
      + PL-LTE - Language Translation and Execution
      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
      PL-CG - Code Generation
      Generazione del codice: Codice intermedio. Codice a tre indirizzi. Strutture dati per l'implementazione del 3AC. Codice per macchina virtuale. 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
      + PL-LTE - Language Translation and Execution
      Compilatori e Linguaggi. Linguaggi Macchina, Linguaggi Assembly ed evoluzione dei linguaggi di programmazione.

Le sottoaree "obbligatorie" sono prefisse da un segno più (+). Le sottoare "suggerite" sono prefisse da un segno asterisco (*).