22
EJERCICIOS DE GRAMÁTICAS 1. Crear una gramática que genere los siguientes lenguajes: a) { a, aa, aaa } b) { a, aa, aaa, aaaa, aaaaa, …) c) { λ, a, aa, aaa } d) { λ, a, aa, aaa, aaaa, aaaaa, …) La notación empleada para representar cada uno de los lenguajes será: a) { a n | n [1, 3] } b) { a n | n > 0 } c) { a n | n [0, 3] } d) { a n | n 0 } 2. Dadas las gramáticas G=( T , NT , S, P i } donde: Determinar el lenguaje asociado a dichas gramáticas. 3. Determinar el tipo de las siguientes gramáticas en la jerarquía de Chomsky, justificándolo: a) G=({a,b}, {A,B,S}, S, P), P={S::=aA, A::=bB, A::=aA, A::=a, B::=λ} b) G=({a,b,c}, {A,B,C,S}, S, P), P={S::=aAb, S::=Ba, S::=λ, aAbC::=aAbB, aAbC::=aabC, BCc::=AaCc, BCc::=BaAbc, C::=Ca, C::=a} c) G=({casa, jardin, gato}, {S, CASERON, BOSQUE, TIGRE}, S, P), P={ S::=TIGRE jardin, S::=BOSQUE CASERON, BOSQUE::=λ, jardin CASERON TIGRE casa::=jardin BOSQUE TIGRE casa, gato CASERON BOSQUE::=gato BOSQUE casa TIGRE BOSQUE, BOSQUE::=TIGRE casa, BOSQUE::=jardin } d) G=({x,y}, {C,A,B,S}, S, P), P={S::=Cx, S::=Cy, S::=By, S::=Ax, S::=x, S::=y, A::=Ax, A::=Cx, A::=x, B::=By, B::=yA, C::=xA} e) G=({a,b,c}, {S,B}, S, P), P={S::=abc, S::=aBSc, Ba::=aB, Bb::=bb}

EjerciciosGramáticas

Embed Size (px)

Citation preview

EJERCICIOS DE GRAMÁTICAS1. Crear una gramática que genere los siguientes lenguajes:

a) { a, aa, aaa }b) { a, aa, aaa, aaaa, aaaaa, …)c) { λ, a, aa, aaa }d) { λ, a, aa, aaa, aaaa, aaaaa, …)

La notación empleada para representar cada uno de los lenguajes será:a) { an | n [1, 3] }b) { an | n > 0 }c) { an | n [0, 3] }d) { an | n 0 }

2. Dadas las gramáticas G=(T, NT, S, Pi} donde:

Determinar el lenguaje asociado a dichas gramáticas.

3. Determinar el tipo de las siguientes gramáticas en la jerarquía de Chomsky, justificándolo:

a) G=({a,b}, {A,B,S}, S, P),P={S::=aA, A::=bB, A::=aA, A::=a, B::=λ}

b) G=({a,b,c}, {A,B,C,S}, S, P),P={S::=aAb, S::=Ba, S::=λ, aAbC::=aAbB, aAbC::=aabC, BCc::=AaCc,

BCc::=BaAbc, C::=Ca, C::=a}

c) G=({casa, jardin, gato}, {S, CASERON, BOSQUE, TIGRE}, S, P),P={ S::=TIGRE jardin, S::=BOSQUE CASERON, BOSQUE::=λ,

jardin CASERON TIGRE casa::=jardin BOSQUE TIGRE casa,gato CASERON BOSQUE::=gato BOSQUE casa TIGRE BOSQUE, BOSQUE::=TIGRE casa, BOSQUE::=jardin}

d) G=({x,y}, {C,A,B,S}, S, P),P={S::=Cx, S::=Cy, S::=By, S::=Ax, S::=x, S::=y, A::=Ax, A::=Cx, A::=x,

B::=By, B::=yA, C::=xA}

e) G=({a,b,c}, {S,B}, S, P),P={S::=abc, S::=aBSc, Ba::=aB, Bb::=bb}

4. Dada la gramática G, se pide:

G=({a,b,c}, {S,A,B}, S, P), P={S::=λ, S::=aAc, A::=aA, A::=Ac, A::=B, B::=b, B::=Bb}

a) Especificar el tipo de G en la jerarquía de Chomsky, razonadamente. b) Determinar el lenguaje L generado por la gramática G.c) Construir 2 árboles de derivación para una misma palabra perteneciente a L(G).d) Comprobar si las siguientes formas sentenciales son válidas en G, y en caso

afirmativo establecer una cadena de derivaciones que permite llegar a cada una de ellas.d.1.- aaAccd.2.-acd.3.-ababBccd.4.-abbccc

5. Obtener una gramática de tipo 0 para el lenguaje L={anbncn / n1}.

6. Realizar las transformaciones necesarias del proceso de limpieza de gramáticas, para obtener una gramática limpia G' equivalente a la G dada.

G = ({a,b,c,d}, {X,Y,Z,O,P,Q,A}, Z, P),P = { Z::=Z, Q::=OP, X::=aa, Z::=aX, Y::=aa, Z::=Ya, O::=b, Z::=aaa,

P::=QO, Q::=d, P::=c, O::=PQ}

7. Dada la gramática G LI, obtener una G’ LD equivalente.

G=({0,1},{A,S},S,P)P={ S ::= 1 | A1; A ::= S0}

8. Dada la gramática G:

G = ({e,f,g,z,a,b,d}, {Y, X, E, A, D, I, G}, A, P), P = { A::=a

E::=bA::=azbA::=aX E::=E G::=g X::=XE D::=eI X::=z Y::=b I::=fG X::=Xb E::=d }

a) Transformar a FNC, explicando cada paso realizado.b) Determinar si las palabras 'abz' y 'azdbb' pertenecen al lenguaje generado por G. En

caso afirmativo, generar un árbol de derivación para dicha palabra. En caso negativo, justificar la no pertenencia.

9. Obtener una gramática en FNC equivalente a la siguiente:

G = ({a, b, c},{S, A, B, C, D, E), S, P) P = { S::=AaB | Cbb | B

A::=Aa |cD B::=a|Ba |λC::=Sa | a|abB D::=aaAE::=aa }

10. Sea la gramática G, hallar su FNG equivalente.

G = ({a,b}, {S}, S, P), donde P = {S::=aSb | SS | }

11. La siguiente gramática genera el lenguaje de expresiones regulares

0*1(0+1)*:

S A1BA 0A | ≥B 0B | 1B | ≥

Obtened posibles derivaciones por la derecha y por la izquierda para las siguientes cadenas:

a. 00101b. 1001c. 00011

12. Obtened una gramática regular para los siguientes lenguajes:

a. a*b+ab. a*b+b*ac. (a*b+b*a)*

13. Construid un autómata finito para las siguientes gramáticas regulares:

a. S aS | bB | bB cC C aS

b. S abA | B | baB | ≥

A bS | bB aS

14. Considerad la GIC G definida por las producciones

S aS | Sb | a | b

Demostrad por inducción sobre la longitud de la cadena, que ninguna cadena deL(G) tiene ba como subcadena.

15. Dada la gramática G

S aS | aSbS | ≥

a. Demostrad que es ambigua especificando dos posibles árboles de derivación para la cadena aab.

b. Encontrad otra gramática que genere L(G) y no sea ambigua

16. Obtener una gramática independiente del contexto para cada uno de los siguientes lenguajes independientes del contexto:

a. {ambn | m ≥ n}b. {w {a,b}* | w tiene el doble de aes que de bes}c. {ambn | n ≤ m ≤ 2n }d. {ambncpdq | m+n ≥ p+q}

17. Convertir las siguientes gramáticas a forma normal de Chomsky:

a. S AB | CA A aB BC | AB C aB | b

b. S aAb | cHB | CH A dBH | eeCB ff | DC gFB | ahD iE jFF dcGGG | cF G GkFH Hlm

18. Dado el lenguaje

L = { vvI | siendo v L(M) M el AFN de la figura}

a. Construid una gramática independiente del contexto que genere el lenguaje L del enunciado.

00

q0 q11

19. Para cada uno de los siguientes lenguajes, construir una gramática independiente del contexto que lo genere. Explicad de forma breve y concisa el razonamiento realizado para llegar a construir la gramática.

a. L = { aibjci+j | i, j , (i-j) es par }b. L = { anbmcp | n≥0, m≥1, p≥n+m}

20. Construir la gramática para el siguiente lenguaje L= { x / x ∈ {0, 1}* y x contiene la subcadena 00 ó x contiene la subcadena 11}

21. Construir la gramática para el siguiente lenguaje L= {xc3m/ x ∈ {a, b}* y la

cantidad de b’s es par y m ≥ 0}.

22. Sean las gramáticas siguientes, definir el lenguaje descrito por cada una de ellas.

1. Sean las siguientes gramáticas.

G ₁=( {c } , {S , A }, S , {S∷=ʎ ∨A , A∷=AA∨c })

Producciones:

S -> ʎ

S -> AA -> AAA -> c

Cadenas que genera:

ʎ,c,cc,ccc,……

Lenguaje Descrito:

L={w∨w=cn donden ≥ 0 }

G ₂=( {c , d } , {S , A } , S ,{S∷=ʎ∨A , A∷=cAd∨cd })

Producciones:

S -> ʎS -> AA -> cAdA -> cd

Cadenas generadas:

ʎ,cd,ccdd,cccddd,……

Lenguaje Descrito:

L={w∨w=cn dn donden≥ 0 }

G ₃=( {c , d } , {S , A } , S ,{S∷=ʎ∨A , A∷=Ad∨cA∨c∨d })

S -> ʎS -> AA -> AdA -> cAA -> cA -> d

Cadenas generadas:

ʎ,c,d,cc,cd,cccddd,ccccdddd,…

Lenguaje Descrito:

L={w∨w=cn dn donden>0 }

G ₄=( {c , d } , {S , A , B }, S , {S∷=cA , A ∷=d|cA|Bd , B∷=d∨Bd })

Producciones:

S -> cAS -> AA -> dA -> cAA -> BdB -> dB -> Bd

Cadenas generadas:

cd,cdd,cdd,ccdd,cccddd,…

Lenguaje Descrito:

L={w∨w=cn dm donden , m ϵ N }

G ₅=( {c } , {S , A }, S , {S∷=ʎ ∨A , A∷=AcA∨c })S -> ʎ S -> AA -> AcAA -> c

Cadenas generadas:

{c,ccc,ccccc,ccccccc,…….}

Lenguaje Descrito:

L={w∨w=cn donden ϵ N inpares }

23.Sean los lenguajes siguientes, describir sus gramáticas regulares.

L={0k 1m 0n∨n=k+m}G=( {1,0 } , {S , B ,C } , S , P 1 )P1:S -> 1BS -> 0AB -> 0C

B -> 0B -> 1CC -> 0

L={wcw∨w (0,1 )¿}G=( {c ,1,0 }, {S , A ,B } , S , P 1 )P1:S -> cS -> AA -> 0AA -> 1AA -> cBB -> 0BB -> 1BB -> λ

L={wcw−1∨w (0,1 )¿}G=( {c ,1,0 }, {S , A ,B } , S , P 1 )P1:S -> cS -> AA -> 0AA -> 1AA -> cBB -> 0BB -> 1BB -> λ

L={10n∨n=0,1,2 , ……. }G=( {1,0 } , {S , A } , S , P 1 })P1:S -> 1AA -> 0AA -> 0

24 A partir de la gramática dada por:

S aE , E A | B , A aA | B , B bB | b

derive las cadenas ab, ab3, aa3b. ¿Es posible derivar abab?

25 Obtener una gramática regular para los siguientes lenguajes:

(a) a*b a

(b) a*b b*a

(c) (a*b b*a)*

26 La gramática regular dada por: S bA | aB |

A abaS

B babS

Genera un lenguaje regular. Encuentre un autómata finito y una expresión regular para este lenguaje.

27 Obtenga una gramática regular que genere el lenguaje consistente en una o mas copias del patrón xy.

28 Muestre que es posible modificar la gramática que se presenta a continuación para formar una gramática regular, sin cambiar el lenguaje que genera.

S yX | aB | ; X xxX ; X yY ; Y

29 Dibuje el diagrama de transiciones para los autómatas finitos que aceptan los lenguajes generados por las gramáticas regulares que se presentan a continuación. Describa el lenguaje que acepta cada uno.

S | xX | yY

Y yY |

X xX |

S abA | B | baB |

A bS | b

B aS

S abA | bbB | ccV |

A bC | cX

B ab

C | cS

V aV | cX

X bV | aaX

(a) (b) (c)

30 Obtenga la gramática regular que genera el lenguaje aceptado por cada uno de los siguientes autómatas finitos.

a,bq0

a

a

b b

q3b

a q1

q2

q2q3

q0 q1

ab a b

a

b

a

b

(a) (b)

q0 q1a,b

a

b,cc

q1q0 q2 q3

a

a

b

b a,b

a,b

(c) (d)

31 En la definición de gramática regular, se dijo que si en el lado derecho de una producción hay un símbolo no terminal, entonces este debe estar ubicado en el extremo derecho. Esto corresponde a la generación de cadenas de izquierda a derecha y por tal razón este tipo de gramáticas son llamadas gramáticas regulares por la derecha. Existen también las gramáticas regulares por la izquierda, cuyas cadenas son generadas por la derecha, es decir, las producciones son de la forma:

A Bw

Donde A y B son símbolos no terminales y w es una cadena perteneciente a *.

(a) Obtenga una gramática regular por la izquierda para el lenguaje {anbaa | n 0}.

(b) Obtenga las gramáticas regulares por la izquierda y por la derecha para el lenguaje dado por:

{w {a,b,c}* | w termina en b y toda c va seguida por una a}

32 ¿Puede una cadena como abBAdBc (donde A y B son símbolos no terminales) ser derivada desde el símbolo inicial S en una gramática regular por la derecha? Explique.

GRAMATICAS INDEPENDIENTES DEL CONTEXTO, ÁRBOLES DE DERIVACIÓN, AMBIGUEDAD Y FORMAS CANÓNICAS PARA LAS GIC.

33 Dada la gramática independiente del contexto: S AA ; A AAA | a | bA | Ab

Obtenga la derivación para la cadena b2aba2ba.

34 La gramática G independiente del contexto dada por: S aSb | aSa | bSa | bSb | , no es una gramática regular, aunque L(G) es un lenguaje regular. Obtenga una gramática regular G’ tal que L(G’) = L(G).

35 Obtenga una gramática independiente del contexto para cada uno de los siguientes lenguajes independientes de contexto?

(a) {ambn | m n}

(b) {w {a,b}* | w tiene el doble de a’s que de b’s}

(c) {ambn | n m 2n}

(d) {ambncpdq | m+n p+q}

36. Sea la gramática independiente del contexto dada por:

S aA ; S bT ; T aa

Encuentre el árbol de derivación para las cadenas aaabaa, aabaa y abaa.

¿Es posible derivar la cadena aaaba?

37 Sea la GIC dada por: R a | b | c | | | (R R) | (R R) | R*

donde = {a,b,c,(,),,,,*}.

Realice paso a paso 4 derivaciones distintas para la cadena ((a b)* c) y encuentre el correspondiente árbol de derivación. ¿Es esta una gramática ambigua?

38 Demuestre que la siguiente gramática es ambigua

S bA | aB ; A a | aS | bAA ; B b | bS | aBB

39. Para la gramática del ejercicio 38, encuentre una gramática no ambigua que genere el mismo lenguaje.

40 Obtenga una gramática equivalente (que genere el mismo lenguaje), simplificando la gramática siguiente:

S Aa | B | D ; B b ; A aA | bA | B ; C abd

41 A partir de la gramática presentada a continuación (donde S es el símbolo inicial), obtenga una gramática simplificada que genere el mismo lenguaje.

Z S |

S Cbh | D

A aaC

B Sf | ggg

C cA | d | C

D E | SABC

E be

42 Simplifique la siguiente gramática y obtenga el conjunto de símbolos no terminales anulables.

S A | AA | AAA

A ABa | ACa | a

B ABa | Ab |

C Cab | CC

D CD | Cd | Cea

E b

43 Convierta las siguientes gramáticas en la forma normal de Chomsky

(a) S AB | CA

A a

B BC | AB

C aB | b

(b) S aAb | cHB | CH

A dBH | eeC

B ff | D

C gFB | ah

D y

E jF

F deGGG | cF

G kF

H Hlm

44 Eliminar todas las producciones unitarias de la siguiente gramática independiente del contexto.

S CB | D

A bbC

B Sc | ddd

C eA | f | C

D E | SABC

E gh

45 Dado el autómata de la figura

Escribir todas las reglas de la gramática equivalente asociadas a la transición S(p,y;x)=(q,y)

46 Para cada uno de los siguientes lenguajes dar una gramática general que los genere:

47 Sean G1 = (N,T,P1,S) y G2 = (N,T,P2,S) gramáticas generales.

Demostrar las siguientes afirmaciones:

Concatenación: Existe una gramática general G tal que L(G) = L(G1)L(G2), i.e. tal que el lenguaje que genera se obtiene mediante concatenación de cadenas de L(G1) con cadenas de L(G2).

Intersección: Existe una gramática general G tal que el lenguaje que genera es L(G1) ∩ L(G2).

Unión: Existe una gramática general G tal que el lenguaje que genera es L(G1) ∪ L(G2).

48 Considere la siguiente gramática libre de contexto:

S —► S S + | S S * | a

y la cadena aa + a*.

a) Proporcione una derivación por la izquierda para la cadena.

b) Proporcione una derivación por la derecha para la cadena.

c) Proporcione un árbol de análisis sintáctico para la cadena.

d) ¿La gramática es ambigua o no? Justifique su respuesta.

e) Describa el lenguaje generado por esta gramática.

49 Diseñe gramáticas para los siguientes lenguajes:

a) El conjunto de todas las cadenas de 0s y 1s, de tal forma que justo antes de cada 0 vaya por lo menos un 1.

b) El conjunto de todas las cadenas de 0s y 1s que sean palíndromos; es decir, que la cadena se lea igual al derecho y al revés.

c) El conjunto de todas las cadenas de 0s y 1s con un número igual de 0s y 1s.

d) El conjunto de todas las cadenas de 0s y 1s con un número desigual de 0s y 1s.

e) El conjunto de todas las cadenas de 0s y 1s en donde 011 no aparece como una subcadena.

f) El conjunto de todas las cadenas de 0s y 1s de la forma xy, en donde x sea diferente de y, y x y y tienen la misma longitud.

50. Construye gramáticas regulares ó lineales a la derecha que generen cada uno de los siguientes lenguajes sobre el alfabeto terminal = {a, b, c}

a) { x * : |x|a mod 2 = 0 }

b) { x * : x empieza por a y contiene la subpalabra bbb }

c) { x * : x no contiene tres b's consecutivas }

d) { x * : |x|a + |x|b mod 3 = 0 }

e) { x * : x contiene las subpalabras aa, bb y cc }

f) { x * : x no contiene las subpalabras aba ni aca }

g) { x * : cada aparición de a en x es precedida de b o seguida de c }

h) { x * : x no contiene ninguna aparición de la subcadena aa después de la

última aparición del símbolo c }

i) { x * : x contiene dos a’s separadas por un número impar de símbolos }

j) { x * : x contiene la subpalabra ab pero no contiene la subpalabra aba }

De entre ellas, di cuales son regulares y cuales son lineales.

51. (Ejercicio especial) Sea G=(N, , P, S) una gramática lineal a la derecha, con N={S,A,B} y = {a ,b }, y sean las siguientes palabras:

S, A, AB, , aaA, abaS, bbab, aSba, Baaab, abAS, abBAbSb.

a ) ¿Cuáles de ellas podrían ser formas sentenciales de G?

b ) Describe la estructura general de una forma sentencial de G.

c ) Demuestra por inducción que las formas sentenciales de G no pueden ser

distintas de lo descrito en el apartado anterior.

52. (Ejercicio especial) Una Gramática cuasi-regular a la derecha se define como una gramática G = (N, , P, S), donde las reglas de P responden a alguna de las 3 siguientes formas: A , A aB, A a, con A,BN, a. Considera el siguiente algoritmo:

Entrada: G = (N, , P, S) gramática cuasi-regular a la derecha

Salida: INCOGNITA

Procedimiento: Construir INCOGNITA = ( N1, , , S, F) donde

N1 = N {Z}

F = {Z} {A: A P }

B(A,a) AaBP

Z(A,a) AaP

a) Aplica el algoritmo a la gramática siguiente: G=({S,A,B}, {a,b,c}, P, S) siendo P

el conjunto de producciones S aA | aB A bA | b B cB | c

53 Dada la expresión regular r a b cb * c * ab *

Construir una gramática regular equivalente.

54 una gramática para los múltiplos de 8, escritos en forma binaria. (Algoritmo y datos de entrada).

55 Dada la expresión regular r a bcab c* ca

* c

*

Hallar

a) una gramática cuyo lenguaje sea r

56 Construir una gramática para los múltiplos de 8, escritos en forma decimal.

57 Dada la expresión regular r 01* 0*

01*

a) Hallar una gramática equivalente.

58 Buscar una expresión regular para el lenguaje de la gramática

A:= 0A / 0B / 0D / 0

B:= 1C / 1D /1

C:= 1B / 0D / 0

59. Dada la expresión regular r=(ab+bb*)*+a*(b+ab) sobre el alfabeto Σ={a,b} Construir una gramática limpia para dicho lenguaje

60 Para la siguiente gramática regular G =({0,1}, {A, B, C, D}, A, P), siendo P las reglas

A := 0B | 1C | λ

B := 0B | λ

C ::= 1C | 0D

D ::= 0A | 0B | λ

Se pide:

Encontrar una expresión regular mediante la aplicación de la resolución del Teorema de Análisis de Kleene.

Dar el conjunto de cadenas de longitud menor que 4 generadas por G.

61 Dada la gramática:

S:=MN M:=aMc / ac N.=bNc /M / λ

Obtener una equivalente bien formada Obtener una equivalente en forma normal de Chomsky

62 Dadas las gramáticas regulares G1 y G2 con los siguientes conjuntos de producciones: • P1 = { S -> a A, A -> b A | ε } • P2 = {S -> a S | b A, A -> b A | ε } y los lenguajes regulares L1 = L(G1) = {a bn | n ≥ 0} y L2 = L (G2) = {a^nb^m | n ≥ 0, m ≥ 1} generados por G1 y G2, respectivamente, obtén gramáticas regulares que permitan generar los siguientes lenguajes: • L1 ∪ L2 • L1 · L2 • L1* • L1