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