Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Lenguajes Libres de ContextoMs all de los Autmatas Finitos.
Universidad de Cantabria
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Esquema
1 Introduccin
2 rboles de Derivacin
3 Un Algoritmo para la Vacuidad
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Introduccin
Hemos visto que los lenguajes regulares son demasiadosimples. Ahora tenemos que dar un paso ms all y estudiarlos lenguajes libres de contexto.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Introduccin
Los lenguajes libres de contexto tienen una aplicacin a loscompiladores, aunque existen otras aplicaciones como lacomparticin de informacin.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Introduccin
Por qu no ir un paso ms all? Por qu no se estudian lasgramticas sensibles al contexto?
Para gramticas sensibles al contexto, el problema dedecidir si el lenguaje que genera es vaco o no tambin esun problema indecidible.En cuanto al Problema de Palabra para gramticassensibles al contexto, el problema es PSPACEcompletopara ciertas subclases, con lo que se hace impracticablepara su uso en la vida real.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Introduccin
Por qu no ir un paso ms all? Por qu no se estudian lasgramticas sensibles al contexto?
Para gramticas sensibles al contexto, el problema dedecidir si el lenguaje que genera es vaco o no tambin esun problema indecidible.En cuanto al Problema de Palabra para gramticassensibles al contexto, el problema es PSPACEcompletopara ciertas subclases, con lo que se hace impracticablepara su uso en la vida real.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Nota
PSPACE se refiere a la clase de problemas que puedenser resueltos usando un nmero eficiente de espacio.PSPACE-Completo es la clase de problemas ms difcilesde PSPACE.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Definicin
Definicin (Gramticas libres de contexto o de Tipo 2)Llamaremos gramtica libre de contexto a toda gramticaG = (V ,,Q0,P) tal que todas las producciones de P son deltipo siguiente:A 7 , donde A V y ( V ).Un lenguaje libre de contexto es un lenguaje generado poruna gramtica libre de contexto.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Definicin
El sistema de transicin asociado a una gramtica libre decontexto es el mismo que asociamos a una gramticacualquiera. Usaremos el smbolo C `G C para indicar que laconfiguracin C es deducible de la configuracin C mediantecomputaciones de G.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
rboles de Derivacin
DefinicinLlamamos formas sentenciales a todos los elementos de(V ). Llamaremos formas terminales a las formassentenciales que slo tienen smbolos en el alfabeto desmbolos terminales, es decir, a los elementos de .
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
rboles de Derivacin
Definicin (rbol de Derivacin)
Sea G := (V ,,Q0,P) una gramtica libre de contexto, seaA V una variable. Diremos que un rbol TA := (V ,E)etiquetado es un rbol de derivacin asociado a G si verificalas propiedades siguientes:
La raz del rbol es un smbolo no terminal (i.e., unavariable) y los otros nodos interiores estn etiquetados conuna variable y las hojas con un smbolo terminal o .Si un nodo est etiquetado con una variable X y susdescendientes (ledos de izquierda a derecha) en el rbolson X1, . . . ,Xk , entonces hay una produccinX 7 X1 Xk en G.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
rboles de Derivacin
EjemploHallar rboles de derivacin para las gramticas siguientes:
A 7 BF ,B 7 EC,E 7 a,C 7 b,F 7 c, de tal maneraque la raz sea A y las hojas estn etiquetadas con a,b, cen este orden.Q0 7 zABz,B 7 CD,C 7 c,D 7 d ,A 7 a, de tal maneraque la raz sea Q0 y las hojas estn etiquetadas (deizquierda a derecha) mediante z,a, c,d , z.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
rboles de Derivacin
Sea G := (V ,,Q0,P) una gramtica libre de contexto, seaA V una variable. Sea TA un rbol asociado a la gramticacon raz A. Sea (V ) la forma sentencial obtenidaleyendo de izquierda a derecha los smbolos de las hojas deTA. Entonces, A `G . En particular, las formas sentencialesalcanzables desde el smbolo inicial Q0 estn representadaspor los rboles de derivacin de raz Q0.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
rboles de Derivacin
Las palabras sobre el alfabeto estn en el lenguaje L(G)generado por una gramtica G si y solamente si existe un rbolde derivacin cuyas hojas (ledas de izquierda a derecha)producen la palabra .
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
El Problema de la Vacuidad
El problema de decidir si es o no vaco el lenguaje generadopor una gramtica libre de contexto se puede resolveralgortmicamente.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Resultado
Teorema (Vacuidad de un lenguaje libre de contexto)El problema de la vacuidad de los lenguajes generados porgramticas libres de contexto es decidible. Es decir, existe unalgoritmo que toma como entrada una gramtica libre decontexto G y devuelve una respuesta afirmativa si L(G) 6= ynegativa en caso contrario.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Idea del Algoritmo
Entrada: Una gramtica libre de contexto G = (V ,,Q0,P).M := N := {A V : (A 7 ) P, }
mientras N 6= M hacerM := NN := {A V : (A 7 ) P, (N )} N.
finaliza mientrassi Q0 N, entonces devuelve SIen otro caso devuelve NOfinaliza si
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Idea de la Demostracin
Consideremos una cadena de subconjuntos Ni de V quereflejan los sucesivos pasos por el ciclo mientras.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Idea de la Demostracin
Escribamos N0 = y denotemos por Ni al conjunto obtenido enel isimo paso por el ciclo mientras, sin considerar lacondicin de parada. Esto es,
Ni := {A V : (A 7 ) P, (Ni1 )} Ni1.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Idea de la Demostracin
Por construccin observamos, adems, que si existe un paso ital que Ni = Ni+1, entonces, Ni = Nm para todo m i + 1.
Lenguajes Incontextuales
Introduccinrboles de Derivacin
Un Algoritmo para la Vacuidad
Idea de la Demostracin
Si definimos la altura por el nmero de nodos atravesados enel camino ms largo, se tiene que:
Una variable X V verifica que X Ni si y solamente si existeun rbol de derivacin de G de altura i + 1 que tiene X comoraz y cuyas hojas estn etiquetadas con smbolos en {}.
Lenguajes Incontextuales
Introduccinrboles de DerivacinUn Algoritmo para la Vacuidad
Top Related