Introduzione e Programma del corso - SisInf Lab

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