Linguaggi Formali e Compilatori Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2014/2015 LINGUAGGI FORMALI E COMPILATORI Introduzione al corso Floriano Scioscia 1 Linguaggi Formali e Compilatori Agenda A.A. 2014/2015 DEI – Politecnico di Bari • Orario delle lezioni – Mercoledì ore 12,30 – 14,30 – Venerdì ore 12,30 – 14,30 aula 6 aula Q • Orario di ricevimento – Lunedì ore 17,00 – 19,00 SisInf Lab (piano 0 ex Architettura) • Riferimenti – Email: – Web: [email protected] http://sisinflab.poliba.it/scioscia (pagina Teaching) Introduzione al corso - Floriano Scioscia 2 Linguaggi Formali e Compilatori A.A. 2014/2015 DEI – Politecnico di Bari Obiettivi formativi • Che cos’è un linguaggio di programmazione • Come sono definiti i linguaggi di programmazione e come si definiscono i programmi. • Come questi linguaggi sono “implementati”, ovvero come vengono eseguiti su una macchina (tipicamente, un computer). • Quali sono le tecniche di traduzione per i moderni linguaggi di programmazione sia di tipo general purpose che per applicazioni specifiche. Introduzione al corso - Floriano Scioscia 3 Linguaggi Formali e Compilatori A.A. 2014/2015 DEI – Politecnico di Bari Requisiti preliminari • Conoscenza dei linguaggi di programmazione • Conoscenza dei paradigmi di programmazione • Conoscenza delle diverse modalità di allocazione della memoria • Capacità di sviluppare applicazioni software anche complesse • Conoscenza delle principali strutture dati e degli algoritmi per la loro gestione Introduzione al corso - Floriano Scioscia 4 Linguaggi Formali e Compilatori A.A. 2014/2015 DEI – Politecnico di Bari Programma del corso • Linguaggi di programmazione • Analisi sintattica (parsing) • Linguaggi e macchine astratte • Top-Down Parsing, LL Parsing • Traduttori, compilatori e interpreti • Bottom-Up Parsing, LR Parsing • Alfabeto, stringhe, vocabolario • Implementazione di parser • Linguaggio, approcci alla definizione • Analisi Semantica • Grammatiche e classificazione Syntax-Directed Translation • Grammatiche regolari e context-free • Rappresentazione intermedia • Backus-Naur Form (BNF) • Generazione del codice • Automi • • Struttura di un compilatore Tecniche di ottimizzazione del codice • Analisi lessicale (scanning) • Tecniche di verifica del software • Implementazione di scanner • Model checking • Tema d’anno: obiettivo e contenuto • Introduzione al corso - Floriano Scioscia 5 Linguaggi Formali e Compilatori A.A. 2014/2015 DEI – Politecnico di Bari Modalità di esame • Elaborato – Gruppi di 1, 2 o 3 persone – Consegna di codice, progetto eseguibile, istruzioni per l’uso (max 2 pagine) e relazione (max 20 pagine) • Colloquio orale – Discussione dell’elaborato – Contenuti teorici del corso Introduzione al corso - Floriano Scioscia 6 Linguaggi Formali e Compilatori A.A. 2014/2015 DEI – Politecnico di Bari Materiale didattico • Testi principali – A.H. Aho, M.S. Lam, R. Sethi, J.D. Ullman, “Compilers: principles, techniques & tools”, second edition [edizione italiana “Compilatori: principi, tecniche e strumenti”, seconda edizione], Pearson/Addison-Wesley, 2007/2009 – Diapositive e materiale del docente • Altri testi – J.E. Hopcroft, R. Motwani, J.D. Ullman “Automi, Linguaggi e calcolabilità” vol. primo: Metodi sintattici, Addison-Wesley, 2003 – David Gries, “Principi di progettazione dei compilatori”, Collana di Informatica, Franco Angeli Editore – T.W. Pratt, M.V. Zelkowitz, “Programming Languages: Design and Implementation”, Prentice Hall Introduzione al corso - Floriano Scioscia 7
© Copyright 2024 ExpyDoc