Edizione 1
Avvisi
Informazioni generali
Materiale di riferimento
Argomenti delle lezioni svolte
Testo consigliato:
Argomenti delle lezioni svolte
Introduzione. Generalità su linguaggi, linguaggi
formali, macchine e automi.
Alcuni esempi informali di automi a stati finiti.
Nozioni base su alfabeti, stringhe, linguaggi.
Il problema della rappresentazione finita di linguaggi.
Il linguaggio delle parentesi bilanciate: definizione
riconoscitiva e definizione generativa.
Automi a stati finiti deterministici: definizione,
funzione di transizione estesa alle stringhe, linguaggio
accettato. Rappresentazione mediante tabelle e mediante
diagrammi di transizione. Esempi.
Automi a stati finiti nondeterministici: definizione,
funzione di transizione estesa alle stringhe, linguaggio
accettato. Esempi.
Trasformazione di automi nondeterministici in automi
deterministici: la costruzione per sottoinsiemi.
Equivalenza tra automi a stati finiti deterministici
e nondeterministici. Automi con epsilon-mosse.
Trasformazione di automi con epsilon-mosse in automi
nondeterministici e deterministici.
Operazioni su linguaggi: operazioni insiemistiche
(unione, intersezione, complemento, differenza),
prodotto o concatenazione, potenza, chiusura di
Kleene, chiusura positiva.
Le espressioni regolari. Esempi.
La classe dei linguaggi regolari.
Il teorema di Kleene (prima parte): dalle espressioni
regolari agli automi a stati finiti. Esempi.
Il teorema di Kleene (seconda parte): dagli automi
a stati finite alle espressioni regolari. Esempi.
Il pumping lemma per i linguaggi regolari.
Esempi di dimostrazioni di non regolarità
mediante il pumping lemma.
Chiusura della classe dei linguaggi regolari
rispetto alle operazioni booleane.
Problemi di decisione per linguaggi regolari:
come decidere se un linguaggio è vuoto, finito o infinito;
come decidere l'equivalenza di automi a stati finiti
o di espressioni regolari.
Equivalenza e distinguibilità di stati.
Minimizzazione di automi deterministici.
Automi a pila: introduzione e definizione.
Configurazioni o descrizioni istantanee.
Accettazione per stato finale.
Accettazione per pila vuota.
Simulazione di automi a pila che accettano
per stati finali mediante automi a pila
che accettano per pila vuota.
Simulazione di automi a pila che accettano
per pila vuota mediante automi a pila
che accettano per stati finali.
Automi a pila deterministici.
Determinismo e nondeterminismo: esempi di
linguaggi riconosciuti da automi a pila
nondeterministici ma non riconoscibili
da automi a pila deterministici.
Grammatiche: definizione di grammatica.
Esempi.
Grammatiche: derivazioni e linguaggi.
Classificazione di Chomsky delle grammatiche
e dei linguaggi.
Cenni all'equivalenza tra grammatiche di
tipo 3 e automi a stati finiti.
Grammatiche e linguaggi context-free:
alberi sintattici e derivazioni a sinistra.
Ambiguità e ambiguità inerente.
Equivalenza tra automi a pila e grammatiche
libere dal contesto.
Forme normali di Chomsky e di Greibach.
Esempi.
Il pumping lemma per il linguaggi context-free.
Esempi di uso del pumping lemma.
Chiusura della classe deil linguaggi context-free
rispetto all'unione. Non chiusura rispetto a
intersezione e complemento.
Il pumping lemma per il linguaggi context-free: revisione
ed esempi.
Proprietà di chiusura della classe dei linguaggi
context-free: chiusura rispetto a unione, intersezione e
chiusura di Kleene. Chiusura rispetto all'intersezione con
linguaggi regolari.
Appartenenza di una stringa a un linguaggio context-free (inizio).
Appartenenza di una stringa a un linguaggio context-free:
l'algoritmo CYK.
Problemi di decisione per linguaggi regolari:
come decidere se un linguaggio è vuoto, finito o infinito.
Cenni ad alcune prorietà non decidibili.
Codifica di stringhe mediante interi.
Dimostrazioni per diagonalizzazione.
Insiemi ricorsivi e ricorsivamente numerabili.
Cenni alla ricorsività dei linguaggi context-sensitive
e all'equivalenza tra linguaggi di tipo 0 e linguaggi ricorsivamente
numerabili.
Il problema dell'arresto.
Il complemento di insiemi ricorsivamente numerabili.
Ultimo aggiornamento: 12 febbraio 2013
© Giovanni
Pighizzini
Università degli Studi di
Milano