corso |
Codice: | AA026 | Crediti: | 6 | Semestre: | 2 | Sigla: | COP | |
Settore disciplinare: | INF/01 - Informatica |
Linguaggi: sintassi, semantica, esecutore, funzione semantica, interprete e traduttore.
Compilatore:le principali fasi, compilazione a una passata, front-end e back-end.
Lessico: linguaggi regolari, analisi lessicale, automi a stati finiti e scanners. Lex
Sintassi: Linguaggi context-free. Tecniche di analisi sintattica: forme sentenziali, derivazioni leftmost, rightmost, alberi di d.s., ambiguitą. Tecniche di parsing: top-down e parser LL, bottom-up e parser SLR, LALR e LR. YACC
Grammatiche ad attributi: attributi, a. ereditati, a. sintetizzati, grammatiche s-attributate e l-attributate, analizzatori discendenti e analizzatori ascendenti. Valutazione bottom-up di attributi ereditati. Analisi di definizioni syntax-directed.
Analisi statica: proprietą statiche di programmi e analisi dei tipi
Generazione di codice intermedio: linguaggi interemedi, Tecniche di generazione per attributi e per effetti laterali. Traduzioni di espressioni senza effetti laterali e invarianti di traduzione. Traduzioni di comandi e invarianti di raduzione. Trasferimento di controllo, salti in avanti e backpatching.
testo di base: Aho,A.V., Sethi, R. and J.D., Ullman, COMPILERS: Principles, Techniques, and Tools. Addison-Wesley, 1988. - primi otto capitoli (pp.1-508)
testo di consultazione: Hopcroft, J.E., Motwani, R. and J.D. Ullman, Automi, Linguaggi e Calcolabilitą. Addison-Wesley, Pearson Education Italia srl., 2003