Docente
Beatrice Palano |
Programma del corso di LFA
Nozioni di base.
Monoidi di parole, linguaggi, operazioni tra linguaggi, riconoscitori e generatori di linguaggi. Grammatiche e derivazioni. Grammatiche regolari, libere da contesto, dipendenti da contesto e relative classi di linguaggi.
Linguaggi liberi da contesto.
Alberi di derivazione. Grammatiche e linguaggi ambigui.
Forma normale di Chomsky. Lemma di iterazione per i linguaggi liberi da
contesto. Forma normale di Greibach. Automi a pila. Caratterizzazione dei
linguaggi liberi da contesto mediante gli automi a pila. Applicazioni:
XML.
Registro del corso di LFA
(contenuti del corso lezione per lezione)
- Introduzione al corso. Presentazione del programma del corso.
- Nozioni base della teoria dei linguaggi formali: alfabeto, monoide di parole. Linguaggio formale. Esempi di linguaggi finiti e infiniti.
- Operazioni su linguaggi: insiemistiche, prodotto, potenza, chiusura di Kleene. Esercizi. Codici, codici prefissi.
- Linguaggi e problemi di decisione. Esempi. Sistemi riconoscitivi e sistemi generativi. Procedura, algoritmo, programma.
- Linguaggi ricorsivi. Linguaggi ricorsivamente enumerabili. Teorema di inclusione. Esempi di linguaggi e ricorsivi. Analisi del linguaggio complemento.
- Esistenza di un linguaggio ricorsivamente enumerabile ma non ricorsivo. Dimostrazione.
- Indecidibilità del problema dell'arresto. Esistenza di un linguaggio non ricorsivamente enumerabile. Dimostrazione.
- Introduzione alle grammatiche. Definizioni: grammatica, derivazione, linguaggio generato. Esempi.
- Teorema di equivalenza tra la classe dei linguaggi generati da grammatiche e la classe dei linguaggi ricorsivamente enumerabili.
- Classificazione di Chomsky (versione semplificata). Esempi di grammatiche di tipo 3, 2, 1.
- Teorema di inclusione delle classi di linguaggi di tipo 3,2,1,0. I linguaggi di tipo 1 sono ricorsivi. Dimostrazione.
- Classificazione di Chomsky (versione definitiva). Forme equivalenti delle grammatiche di tipo 3.
- Introduzione agli automi a stati finiti. Definizione. Linguaggio riconosciuto.
- La relazione di indistinguibilità tra stati. Costruzione di automi a stati finiti con stati distinguibili tra loro.
- Sintesi di automi a stati finiti. Automa massimo e minimo. Automa minimo ottenuto dall'automa massimo senza stati indistinguibili. Dimostrazione.
- Algoritmo di sintesi ottima di automi a stati finiti per linguaggi regolari. Esempi. Prova di esecuzione con un linguaggio non regolare.
- Teorema di equivalenza tra le grammatiche di tipo 3 e gli automi a stati finiti. Automi a stati finiti non deterministici.
- Teorema di equivalenza tra automi a stati finiti deterministici e non deterministici. Esempi.
- Espressioni regolari. Teorema di Kleene. Dimostrazione dell'inclusione: ogni linguaggio denotato da espressione regolare è riconosciuto da un automa a stati finiti.
- Teorema di Kleene. Dimostrazione dell'inclusione: ogni linguaggio riconosciuto da un automa a stati finiti è denotato da una espressione regolare. Proprietà di chiusura dei linguaggi regolari.
- Grammatiche di tipo 2: alberi di derivazione e ambiguità. Forme normali di Chomsky e Greibach. Esempi.
- Il concetto di pila. Riconoscitori per i linguaggi liberi da contesto: automi a pila. Esempi di riconoscitori deterministici e nondeterministici.
- Teorema di equivalenza tra le grammatiche di tipo 2 e i riconoscitori a pila. Dimostrazione. Esempi.
- Il pumping lemma per i linguaggi di tipo 2. Dimostrazione. Uso del pumping lemma: esempio di applicazione su di un linguaggio di tipo 1 non di tipo 2.
Testi consigliati
- J.E. Hopcroft, J.D. Ullman. Introduction to automata theory, languages and computation.Addison-Wesley, 1979.
- A. Bertoni, B. Palano Linguaggi Formali e Automi. Dispense: