Idea della prova
e
Quindi:
Corso di Automi e Linguaggi
Formali
Parte 6 – Pumping lemma per linguaggi liberi
Derivazione:
Se e’ sufficientemente lunga, allora la sua
derivazione usa lo stesso nonterminale piu’
di una volta
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.3/20
'
'
*
contesto
"
+
+
tale
la nuova stringa non appartiene ad
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.4/20
,
per ogni
#
o
con
che
"
O o non sono vuote, quindi
contiene un numero di o di maggiore di .
Ma il numero di e’ rimasto lo stesso.
tale che, per ogni
,
con
Esiste
#
"
"
, quindi contiene al piu’ due simboli
diversi ( e o e ). Suppongo e .
con
'
)
# )
)"
grammatica libera da
(
&
%
Pumping lemma per linguaggi liberi
"
# $
!
Uso del pumping lemma
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.1/20
puo’ essere usato piu’ (k) volte,
ottenendo anche
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.2/20
(
,
#
"
Una grammatica libera da contesto e’ in
forma normale di Chomsky se ogni regola ha
una delle due forme:
Uso delle proprieta’ di chiusura
contiene un numero
#
"
uguale di , , e }
# non e’ regolare
non e’ libero da
contesto (l’intersezione di un linguaggio libero
e di uno regolare e’ un linguaggio libero)
"
Forma normale di Chomsky
Ogni derivazione di una stringa usa al piu’
regole del primo tipo e del secondo tipo
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.5/20
,o
)
)"
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.8/20
: non in
o
"
)
con
)"
Suppongo sia nella fine, e considero
)"
"
)
e’ contenuta nel primo
, o nella fine
)
)
)"
)
)"
nel mezzo
,
&
Dopo aver letto la prima meta’ e averla messa
sulla pila, l’automa deve confrontare i simboli
con quelli in fondo alla pila
)
in
con
Trasformo ogni regola
regole della forma
Elimino le regole della forma
Simile al linguaggio delle palindromi di
lunghezza pari (libero)
Elimino le regole della forma
in forma normale di Chomsky
a
Da
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.7/20
Data una libera da contesto, posso sempre
libera da contesto in
trasformarla in una
forma normale di Chomsky tale che
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.6/20
'
)
' + '
(
:
dove tutti i
:
(
: non
terminali derivabili da
Per calcolare
eliminabile se
C’e’ una regola
C’e’ una regola
sono eliminabili
,
Dato un nonterminale
Eliminazione di
Eliminazione di
(
:
con
(
sono
(
dove tutti i
'
)
' + '
Regola
Regola
eliminabili
Regola
Algoritmo che trova i non terminali eliminabili:
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.9/20
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.11/20
Se regola
, aggiungo a tutte le
regole ottenute eliminando uno o piu’
nonterminali eliminabili in
e
eliminabili,
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.12/20
Alla fine:
Poi: elimino tutte le regole
e
Esempio:
allora aggiungo
e
, allora regola
(
Esempio: regola
, aggiungo
e
tale che
con
Per ogni coppia
ogni regola
a
Eliminazione di
Eliminazione di
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.10/20
con
a delle
: nuove regole
"
"
'
' + '
"
+
Regola
"
Da una regola
regole
Grammatica iniziale:
%
Creazione di regole
Esercizio
invece che
terminale: aggiungo
non terminale: uso
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.15/20
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.13/20
"
a:
"
&
Da
Data una libera da contesto e una stringa
, posso:
decidere se
: se
, controllo
se e’ eliminabile; altrimenti basta
trasformarla in forma normale di Chomsky
e poi generare tutte le derivazioni lunghe al
piu’
decidere se
decidere se
e’ finito
Esempio
Algoritmi
...
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.16/20
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.14/20
e
sono compatibili se
, o viceversa
Non determinismo in automi a pila
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.20/20
deterministico se non ha transizioni
compatibili e non ha transizioni
Forma normale di Chomsky
o
Pumping lemma per linguaggi liberi
o
o
e’ un prefisso di
Proprieta’ di chiusura ei linguaggi liberi
Da grammatica libera da contesto ad automa
Automi a pila
Due transizioni
Da automa a stati finiti a grammatica
Possiamo eliminare il nondeterminismo da un
automa a pila senza cambiare il linguaggio?
In generale, no!
Alberi di parsing, ambiguita’
Det. e nondet. in automi a pila
Grammatiche libere da contesto
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.17/20
Riassunto sui linguaggi liberi
Non esiste nessun algoritmo che possa risolvere
questi problemi: problemi indecidibili!
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.19/20
Dato un linguaggio libero su , e’ uguale a
?
grammatica libera da contesto che
descrive il linguaggio
dalla grammatica ad automa a pila
deterministico
Compilatori, per controllare la correttezza
sintattica dei programmi:
Dati due linguaggi liberi:
e’ vuota la loro intersezione?
sono lo stesso linguaggio?
Esistono linguaggi liberi che non sono
deterministici
Data libera:
e’ ambigua?
e’ inerentemente ambigua?
I linguaggi liberi deterministici sono chiusi
sotto la complementazione
Problemi indecidibili
Det. e nondet. in linguaggi liberi
Corso di Automi e Linguaggi Formali – Gennaio-Marzo 2002 – p.18/20