Universidad Rey Juan Carlos Curso 2009–2010 Teorı́a de Autómatas y Lenguajes Formales Ingenierı́a Técnica en Informática de Sistemas Hoja de Problemas 2 Gramáticas Formales Nivel del ejercicio : (⋆) básico, (♣) medio, (♠) avanzado. 1. (⋆) Obtener las derivaciones de las palabras 002 y 0001 a partir de la siguiente gramática : G = ({A, B}, {0, 1, 2}, A, {A ::= 0B, A ::= 2, B ::= 0A, B ::= 1}) . Obtener el lenguaje que genera. 2. (⋆) Obtener el lenguaje generado por la gramática : G = ({S}, {a, b}, S, {S ::= aSbb | λ}) . 3. (⋆) Construir una gramática que genere el lenguaje L = {an bn+1 | n ≥ 0}. 4. (♣) Construir una gramática sobre el alfabeto Σ = {a, b} que genere el lenguaje L = {w | na (w) y nb (w) son pares }. 5. (⋆) Indicar si las gramáticas con los siguientes conjuntos de producciones son equivalentes : P1 = {S ::= aSb | λ}, P2 = {S ::= aAb | λ, A ::= aAb | λ}. 6. (⋆) Construir gramáticas para Σ = {a, b} que generen los lenguajes cuyo conjunto de palabras sean : (a) Todas las cadenas con una única a. (b) Todas las cadenas con al menos la subcadena bbabbb. (c) Todas las cadenas con no más de tres a′ s. 7. (⋆) Describir el lenguaje generado por la gramática cuyo conjunto de producciones es {S ::= aA | λ, A ::= bS}. 8. (⋆) Describir el lenguaje generado por la gramática cuyo conjunto de producciones es {S ::= Aa, A ::= B, B ::= Aa}. 9. (♣) Construir una gramática para cada uno de los siguientes lenguajes : (a) L1 = {an bm | n ≥ 0, m > n}. Página 1 de 3 Hoja de Problemas 2 (cont.) (b) L2 = {an+2 bn | n ≥ 1}. (c) L3 = {an bn−3 | n ≥ 3}. (d) L1 L2 . (e) L1 ∪ L2 . (f) L32 . (g) L∗1 . (h) L4 = {abn a | n ≥ 1}. 10. (♣) Construir una gramática para cada uno de los siguientes lenguajes para Σ = {a} : (a) L1 = {w | |w| mod 3 = 0}. (b) L2 = {w | |w| mod 3 > 0}. 11. (♣) Dado un alfabeto Σ y una palabra w ∈ Σ∗ , se dice que w es un palı́ndromo si se verifica que w−1 = w. Dado Σ2 := {0, 1}, construir una gramática que genere el lenguaje de los palı́ndromos sobre Σ2 , Lpal (Σ2 ) := {w ∈ Σ∗2 | w−1 = w}. 12. (♣) Construir una grámatica que genere el lenguaje L = {ww | w ∈ {a, b}+ }. 13. (♣) Construir una grámatica que genere el lenguaje L = {www | w ∈ {a, b}+ }. 14. (♣) Sea Σ := {(, ), 0, 1}. Las expresiones con paréntesis bien balanceadas se definen del siguiente modo : • La palabra vacı́a está bien balanceada. • 0 y 1 son palabras bien balanceadas. • Si w ∈ Σ∗ es una palabra bien balanceada, entonces (w) es una palabra bien balanceada. • Si w, w′ ∈ Σ∗ son palabras bien balanceadas, entonces ww′ es una palabra bien balanceada. Construye una gramática que genere el lenguaje de las palabras bien balanceadas. 15. (⋆) ¿ Son equivalentes las gramáticas cuyas producciones son las siguientes?. P1 = {S ::= aSb | ab | λ}, P2 = {S ::= aAb | ab, A ::= aAb | λ}. 16. (⋆) Demostrar si las gramáticas con las siguientes producciones son ambiguas : {A ::= 1B | 11, B ::= 1}, {S ::= AB | aaB, A ::= a | Aa, B ::= b}. Página 2 de 3 Hoja de Problemas 2 (cont.) 17. (⋆) Dada la siguiente gramática: G = ({S}, {b}, S, P = {S ::= bbS, S ::= bb}) . determinar si es de tipo 0, tipo 1, tipo 2 o tipo 3 y, en caso no sea de tipo 3, definir una gramática de tipo 3 que genere el mismo lenguaje. 18. (⋆) Dada la siguiente gramática: G = ({S}, {b, c}, S, P = {S ::= bSc, S ::= bc}) . determinar si es de tipo 0, tipo 1, tipo 2 o tipo 3 y, en caso no sea de tipo 3, definir una gramática de tipo 3 que genere el mismo lenguaje. 19. (♣) Construir una gramática sobre el alfabeto Σ = {a, b} que genere el lenguaje L = {w | na (w) = nb (w)}. 20. (♣) Construir una gramática para el lenguaje construido sobre Σ = {a, b} donde na (w) > nb (w). 21. (♣) Construir una grámatica que genere el lenguaje L = {ww−1 | w ∈ {a, b}+ }. 22. (♣) Construir una grámatica que genere el lenguaje L = {wcv | w, v ∈ {a, b}∗ , nab (w) = nab (v)}. Página 3 de 3