LINGUAGGI FORMALI
Anno accademico 2021/2022 - 2° annoCrediti: 6
Organizzazione didattica: 150 ore d'impegno totale, 102 di studio individuale, 24 di lezione frontale, 24 di esercitazione
Semestre: 1°
Obiettivi formativi
- Conoscenza e capacità di comprensione (knowledge and understanding): il corso ha come obiettivo principale l'acquisizione da parte dello studente di conoscenze avanzate di teoria dei linguaggi formali, relativamente anche a possibili applicazioni. Si noti che gli studi in tale ambito consentiranno allo studente di comprendere meglio nozioni, risultati e concetti fondamentali per un informatico.
- Capacità di applicare conoscenza e comprensione (applying knowledge and understanding): lo studente svilupperà le sue capacità di formalizzazione ed astrazione e acquisirà le competenze necessarie per affrontare in modo chiaro e rigoroso numerosi problemi di carattere applicativo. Tali problemi spaziano dal riconoscimento di linguaggi artificiali e naturali, al pattern matching di stringhe (con applicazioni importanti alla bioinformatica), alla teoria dei giochi.
- Autonomia di giudizio (making judgements): lo studente sarà in grado di utilizzare gli strumenti formali più opportuni in diversi contesti applicativi, motivandone adeguatamente la scelta ed elaborando autonomamente proprie soluzioni.
- Abilità comunicative (communication skills): lo studente acquisirà ulteriori abilità comunicative e una maggiore padronanza degli strumenti espressivi e argomentativi del ragionamento formale.
- Capacità di apprendimento (learning skills): il corso si propone, come obiettivo, di fornire allo studente le necessarie metodologie, soprattutto teoriche, per poter affrontare e risolvere autonomamente nuove problematiche che dovessero sorgere durante l'attività progettuale tipica di un Laureato Magistrale.
Modalità di svolgimento dell'insegnamento
Didattica frontale.
Nota. Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.
Prerequisiti richiesti
Nozioni di base di Logica e Matematica discreta.
Frequenza lezioni
La frequenza delle lezioni non è obbligatoria ma, per una piena comprensione degli argomenti del corso, è fortemente consigliata.
Contenuti del corso
Introduzione ai linguaggi formali:
Grammatiche e riconoscitori.
Automi a stati finiti e linguaggi regolari:
Automi a stati finiti: deterministici, non deterministici, con epsilon-transizioni.
Equivalenza fra Automi a stati finiti con epsilon-transizioni e Automi a stati finiti senza epsilon-transizioni.
Proprieta’ di chiusura della classe dei linguaggi AF-regolari.
Espressioni regolari e linguaggi regolari.
Ogni linguaggio regolare e’ AF-regolare.
Teorema di Kleene.
Pumping lemma per linguaggi regolari (solo enunciato).
Applicazioni del Pumping Lemma: algoritmi di decidibilità per linguaggi regolari.
Teorema di Myhill-Nerode.
Minimizzazione di automi a stati finiti.
Applicazioni.
Grammatiche context-free:
Alberi di derivazione.
Semplificazione di grammatiche context-free: eliminazione dei simboli inutili; eliminazione delle epsilon-produzioni; eliminazione delle produzioni unitarie.
Forma normale di Chomsky:trasformazione di una grammatica context-free in un equivalente in CNF.
Forma normale di Greibach (solo la definizione).
Grammatiche ambigue, non-ambigue e inerentemente ambigue.
Pumping Lemma per linguaggi context-free.
Applicazioni del Pumping Lemma per linguaggi context-free.
Lemma di Ogden (solo enunciato).
Il linguaggio L= {aibjck | i ≠ j, j ≠ k , i ≠ k} non e’ context-free.
Problema dell’appartenenza per linguaggi context-free.
Applicazioni.
Automi a pila:
Linguaggio accettato per stack vuoto e per stati finali.
Equivalenza dei due metodi di accettazione.
Automi a pila deterministici.
Equivalenza tra automi a pila e grammatiche context-free.
Applicazioni.
Macchine di Turing:
Linguaggi ricorsivamente enumerabili.
Equivalenza fra macchine di Turing deterministiche e non deterministiche.
Equivalenza fra macchine di Turing e grammatiche senza restrizioni.
Applicazioni.
Automi linear-bounded e linguaggi context-sensitive:
Definizioni ed esempi
Equivalenza tra automi linear-bounded e grammatiche context-sensitive.
Gerarchia di Chomsky
Testi di riferimento
Libro di testo:
1) John E. Hopcroft, Rajeev Motwani, Jeffrey D Ullman. Automi, linguaggi e calcolabilità , Pearson Paravia Bruno Mondadori S.p.A. Terza Edizione, Marzo 2009.
Per una trattazione più approfondita e un’inquadramento più generale dei vari argomenti si consiglia di consultare anche:
2) John E. Hopcroft, Jeffrey D Ullman. Introduction to automata theory, languages and computation, Addison-Wesley
Programmazione del corso
Argomenti | Riferimenti testi | |
---|---|---|
1 | Introduzione ai linguaggi formali | Dai testi 1) e 2) |
2 | Automi a stati finiti e linguaggi regolari | Dai testi 1) e 2) |
3 | Grammatiche e linguaggi context-free | Dai testi 1) e 2) |
4 | Automi a pila | Dai testi 1) e 2) |
5 | Macchine di Turing | Dai testi 1) e 2) |
6 | Automi linear-bounded e linguaggi context-sensitive | Dai testi 1) e 2) |
7 | Gerarchia di Chomsky | Dai testi 1) e 2) |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Esame scritto e colloquio orale.
Durante il corso sono previste alcune prove in itinere.
È possibile concordare col docente la data e l'orario per lo svolgimento delle prove d'esame.
Nota. La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Esempi di domande e/o esercizi frequenti
http://www.dmi.unict.it/madonia/linguaggiFormali.html