Escolar Documentos
Profissional Documentos
Cultura Documentos
Ejemplo: Palndromes
Un palndrome es una palabra w que cumple w = wR, donde wR es la misma palabra w slo que escrita en orden inverso. Sea PAL = {w (a + b)*| w = wR}, es decir, PAL es el lenguaje que consiste de las palabras palndromes sobre {a, b}. Ejemplos de palndromes sobre {a, b}
a, aba, aabbaa, babaabab.
Definicin
Una gramtica G es un cudruplo (V, , R, S) donde
V es un alfabeto. , el conjunto de los smbolos terminales, es un subconjunto de V. R, el conjunto de reglas de transformacin o de produccin, es un subconjunto de V* V*. S, el smbolo inicial, es un elemento de V . Los elementos de V son llamados variables o smbolos no terminales.
Por lo general las reglas se escriben en lugar de (, ). Aplicar la regla a una palabra uv produce la palabra uv, por lo que las reglas pueden ser vistas como reglas de remplazo.
Smbolos terminales: son elementos del alfabeto que no se Variables o smbolos no terminales: son elementos
Ejemplo
G = (V, , R, S)
V = {a, b, c, S, A, B} = {a, b, c} R: S AccA A BA | B a | b | c w1 = abcc L(G) y w2 = acb L(G) Cadena Regla Derivacin S S AccA S AccA AccA A BA BAccA BAccA B a aAccA aAccA A BA aBAccA aBAccA B b abAccA abAccA A abccA abccA A abcc
10
Jerarqua de Chomsky
Gramticas
Sin restriccin (tipo 0) Sensitivas al contexto (tipo 1) Libres de contexto (tipo 2) Regulares (tipo 3)
Lenguajes
Recursivamente Mquinas de Turing numerables Sensitivos al Autmatas lineales contexto Libres de contexto Autmatas de pila Regulares Autmatas finitos deterministas o no deterministas
G3 G2 G1 G0
11
Ejemplo: A aB | a | Gramticas Libres de Contexto, GLC, (tipo 2 o G2): el conjunto de reglas es un subconjunto finito de (V ) V*, es decir:
El lado izquierdo consiste slo de una variable. No hay restricciones para el lado derecho.
Ejemplo: S aSb | ab |
12
Autmatas y gramticas
Decimos que una gramtica regular G es equivalente a un autmata M (G M) si el lenguaje reconocido por el autmata es igual al lenguaje generado por la gramtica, es decir, si L(G) = L(M). Ejemplo:
Gramtica G con V = {a, b, S, A}, = {a, b}, variables = {S, A}, el smbolo inicial es S y las reglas de produccin son S aS | aA A bA | b a b
M:
Sea G = (V, G, R, S) una gramtica regular. Un AFN que reconoce el mismo lenguaje que G es el autmata M = (K, , , s, F) definido por
K= (V ) {Z} si existe alguna regla A a (A variable y a smbolo terminal) (V ) (variables) en caso contrario.
El alfabeto del autmata consiste de los smbolos terminales de la gramtica, es decir, M = G. B cuando exista una regla A aB (a smbolo terminal y A, B variables) (A,a) = Z cuando exista una regla A a (a smbolo terminal y A variable) El estado inicial del autmata es el smbolo inicial de la gramtica. {A | A es una regla} {Z} si Z K F= {A | A es una regla} en caso contrario
15
Ejemplo
Convertir una gramtica regular a un autmata finito.
S aA S bA A aB A bB A a B aA B bA a S b A a b Z a a
17
Ejemplo
Convertir un autmata finito a una gramtica regular. Convertir un autmata finito a una gramtica regular.
Q0 aQ1 1 Q0 bQ0 0 Q1 aQ2 2 Q1 bQ0 0 Q2 aQ33 Q2 bQ00 Q3 aQ33 Q3 bQ33 Q0 a Q0 b Q1 a Q1 b Q2 b
b b q0 a b q3 q1 a
q2
a,b
19
20
Ejemplos
Ejemplo 1: La LLC (V, , R, S) donde V = {S, A, a, b}, = {a, b} y las reglas son S A A aAb A Qu lenguaje genera? {w = anbn | n 0}, el cual no es regular. Ejemplo 2: La GLC (V, , R, S) donde V = {S,(, )}, = {(, )} y las reglas son S (S) S SS S () Qu lenguaje genera? El de los parntesis bien balanceados: {(), (()), ()(), (())(), (()()), (()())(()()),...}, el cual no es regular Estos ejemplos demuestran que existen GLCs que no son 21 regulares.
Derivaciones
Derivacin por la izquierda: las reglas de reemplazo son aplicadas a la primera variable de izquierda a derecha. Derivacin por la derecha: las reglas de reemplazo son aplicadas a la ltima variable de izquierda a derecha. Ejemplo: G = (V, , R, S) V = {S, A, a, b} = {a, b} R: S AA A AAA | bA | Ab | a En esta gramtica existen, por lo menos cuatro derivaciones de la palabra ababaa.
22
Derivaciones de ababaa
S AA aA S AA AAAA S AA Aa S AA aA
ababAA ababAA
23
rbol de derivacin
Para una derivacin S * w su rbol de derivacin G (parse tree) se construye de la siguiente manera:
Inicializar AD con la raz S. Si A x1x2...xn (con xi V) es la regla de derivacin aplicada a la cadena uAv, entonces aadir x1, x2, ..., xn como los hijos de A en el rbol. Si A es la regla de derivacin aplicada a la cadena uAv, entonces aadir como hijo nico de A en el rbol.
Al rbol de derivacin tambin se le llama rbol de anlisis o rbol de anlisis gramatical o rbol de anlisis sintctico.
24
La cadena de caracteres terminales que se obtiene al recorrer las hojas en orden se llama el producto del rbol.
Ver figuras 3.2 y 3.3 del libro de Sudkamp.
25
Ambigedad en GLC
Una GLC es ambigua si existe una cadena w L(G) que tiene ms de una derivacin por la izquierda o ms de una derivacin por la derecha o si tiene dos o ms rboles de derivacin. En caso de que toda cadena w L(G) tenga un nico rbol de derivacin, la gramtica es no ambigua. Ejemplo: la gramtica S aS | Sa | a es ambigua porque aa tiene dos derivaciones por la izquierda S aS aa S Sa aa S a S a a
26
S S
Esta gramtica genera el lenguaje a+ que tambin es el lenguaje generado por la gramtica no ambigua S aS | a.
Otro ejemplo
La ambigedad puede producir serios problemas en lenguajes cuyo significado depende, en parte, de su estructura, como es el caso de los lenguajes naturales y los de programacin: Mara habl de Leticia embarazada o Jos vio a Luis con lentes. En el ejemplo de arriba el rbol izquierdo representa (x + y) x y el 27 de la derecha representa x + (y x).
En algunos casos, la ambigedad de una gramtica se puede eliminar utilizando nuevas variables que eliminen los rboles de derivacin no deseados. En el ejemplo de los operadores aritmticos, adems de la variable E, que representa expresiones, tambin se utilizan las variables F para factores y T para trminos y se tienen las siguientes reglas:
E E + T T T F F (E) F y E T T F F x
Eliminar ambigedad
Existen los LLC inherentemente ambiguos para los que no existe una gramtica no ambigua equivalente. Ejemplo: L = {anbncmdm} {anbmcmdn}, n 1, m 1. 28
Los lenguajes libres de contexto (LLC) son cerrados con respecto a la unin, concatenacin y cerradura de Kleene. Sin embargo no son cerrados con respecto a la interseccin ni con respecto a la complementacin. Esto no quiere decir que la interseccin de dos LLC necesariamente no sea un LLC o que el complemento de un LLC necesariamente no sea LLC, solamente estipula que hay LLCs cuyo complemento no es un LLC, asimismo, hay LLCs cuya interseccin no es LLC. Existen lenguajes que no sean libres de contexto? SI Ejemplo: {anbncn | n 0} no es LLC.
29