COMPILATORI

Gennaro COSTAGLIOLA COMPILATORI

0522500069
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA MAGISTRALE
INFORMATICA
2015/2016



ANNO CORSO 2
ANNO ORDINAMENTO 2010
SECONDO SEMESTRE
CFUOREATTIVITÀ
648LEZIONE
Obiettivi
IL CORSO INTRODUCE GLI STUDENTI AI CONCETTI PRINCIPALI DEI LINGUAGGI DI PROGRAMMAZIONE ED ALLA COSTRUZIONE DI TRADUTTORI E COMPILATORI.
L'OBIETTIVO DEL CORSO È ESPORRE GLI STUDENTI ALLE TECNICHE DI SVILUPPO PER L' IMPLEMENTAZIONE DI UN LINGUAGGIO DI PROGRAMMAZIONE. QUESTO VIENE FATTO TRAMITE LA PRESENTAZIONE DELLE VARIE FASI DI UN COMPILATORE: L'ANALISI LESSICALE, L'ANALISI SINTATTICA, L'ANALISI SEMANTICA, LA GENERAZIONE DEL CODICE INTERMEDIA, LA GENERAZIONE DEL CODICE MACCHINA E L'OTTIMIZZAZIONE DEL CODICE.
VERRANNO ILLUSTRATI I FORMALISMI NECESSARI PER LA SPECIFICA FORMALE DI UN LINGUAGGIO DI PROGRAMMAZIONE E MOSTRATI GLI ALGORITMI PRINCIPALI PER LA GENERAZIONE AUTOMATICA DI TRADUTTORI E COMPILATORI.
VERRANNO INOLTRE STUDIATI TOOLS PER L'IMPLEMENTAZIONE DEI LINGUAGGI DI PROGRAMMAZIONE.
COME CASO DI STUDIO, IL CORSO PREVEDE LO SVILUPPO DELLE PRIME FASI DI UN COMPILATORE PER IL LINGUAGGIO OBJECT-ORIENTED COOL.
Prerequisiti
SONO RACCOMANDATE CONOSCENZE DI BASE DI ALGORITMI, STRUTTURE DATI, ARCHITETTURE DEGLI ELABORATORI, LINGUAGGI DI PROGRAMMAZIONE DI ALTO LIVELLO, LINGUAGGIO ASSEMBLY.
Contenuti
STORIA, PARADIGMI E CARATTERISTICHE DEI LINGUAGGI DI PROGRAMMAZIONE
ANALISI LESSICALE
SPECIFICA LESSICALE DEL LINGUAGGIO COOL, JFLEX
CONCETTI BASE DELLE GRAMMATICHE
PARSING TOP-DOWN
PARSING BOTTOM-UP
SPECIFICA SINTATTICA DEL LINGUAGGIO COOL, JAVACUP
TRADUZIONI GUIDATE DALLA SINTASSI
RAPPRESENTAZIONI INTERMEDIE
DICHIARAZIONI E TIPI DI VARIABILI
ANALISI SEMANTICA E TYPE CHECKING
SPECIFICA SEMANTICA DEL LINGUAGGIO COOL
GESTIONE DELLA MEMORIA A RUNTIME
GENERAZIONE CODICE INTERMEDIO
GENERAZIONE CODICE MACCHINA (DI BASE)
Metodi Didattici
LEZIONI FRONTALI E STUDIO INDIVIDUALE.
Verifica dell'apprendimento
LA VALUTAZIONE DELLE CONOSCENZE E DELLE CAPACITÀ ACQUISITE DA PARTE DEGLI STUDENTI È BASATA SU DUE PROVE SCRITTE (UNA DURANTE IL CORSO ED UNA ALLA FINE), REALIZZAZIONE DI UN PROGETTO PER LO SVILUPPO DI UN COMPILATORE PER IL LINGUAGGIO COOL ED ESERCITAZIONI DA SVOLGERE A CASA ED UNA DISCUSSIONE ORALE SU TUTTO IL MATERIALE SVOLTO. NEL CASO NON SI SEGUA IL CORSO LE DUE PROVE SCRITTE SI RIDUCONO ALLA SINGOLA PROVA SCRITTA DI CIASCUN APPELLO.
Testi
IL CORSO UTILIZZA I TESTI

V. AHO, R. SETHI, AND J. D. ULLMAN, COMPILERS: PRINCIPLES, TECHNIQUES, AND TOOLS, ADDISON-WESLEY, SECOND EDITION 2007.
PRATT, T. W. AND M. V. ZELKOWITZ, PROGRAMMING LANGUAGES: DESIGN AND IMPLEMENTATION, 4RD ED., PRENTICE-HALL, 2000
INOLTRE VERRÀ UTILIZZATO MATERIALE ONLINE RIGUARDANTE APPROFONDIMENTI VARI, IL LINGUAGGIO DI PROGRAMMAZIONE COOL, LE LIBRERIE DI SUPPORTO ALL'IMPLEMENTAZIONE DI COOL ED I TOOLS DI SVILUPPO I CUI INDIRIZZI VERRANNO INDICATI DI VOLTA IN VOLTA.
Altre Informazioni
IL CORSO È SUPPORTATO DALLA PIATTAFORMA WEB DI DIPARTIMENTO DOVE SONO PUBBLICATE TUTTE LE ATTIVITÀ ED I MATERIALI DEL CORSO.
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2016-09-30]