"Linguaggi di Programmazione e Compilatori" (A.A. 2015-16 e precedenti)



    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.



    Riferimenti Bibliografici:

    - Aho, Sethi, Ullman,
    "Compilers, principles, techniques and tools"
    Addison-Wesley, Reading, Mass



    Link utili:
    The Lex Yacc page


    Materiale Didattico:
    Dispensa1
    Dispensa2
    Dispensa3
    Dispensa4
    Dispensa5
    Dispensa6
    DispensaLEX
    DispensaYACC