Вы находитесь на странице: 1из 18

EJERCICIOS DE GRAMTICAS

1. Crear una gramtica 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 notacin empleada para representar cada uno de los lenguajes ser:
a) { a
n
| n e [1, 3] }
b) { a
n
| n > 0 }
c) { a
n
| n e [0, 3] }
d) { a
n
| n > 0 }


2. Dadas las gramticas G=(E
T
, E
NT
, S, P
i
} donde:




Determinar el lenguaje asociado a dichas gramticas.


3. Determinar el tipo de las siguientes gramticas en la jerarqua de
Chomsky, justificndolo:

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 gramtica 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 jerarqua de Chomsky, razonadamente.
b) Determinar el lenguaje L generado por la gramtica G.
c) Construir 2 rboles de derivacin para una misma palabra perteneciente a L(G).
d) Comprobar si las siguientes formas sentenciales son vlidas en G, y en caso
afirmativo establecer una cadena de derivaciones que permite llegar a cada una de
ellas.
d.1.- aaAcc
d.2.-ac
d.3.-ababBcc
d.4.-abbccc


5. Obtener una gramtica de tipo 0 para el lenguaje L={a
n
b
n
c
n
/ n>1}.


6. Realizar las transformaciones necesarias del proceso de limpieza de gramticas,
para obtener una gramtica 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 gramtica G LI, obtener una G LD equivalente.

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


8. Dada la gramtica G:

G = ({e,f,g,z,a,b,d}, {Y, X, E, A, D, I, G}, A, P),
P = { A::=a
E::=b
A::=azb
A::=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 derivacin para dicha palabra. En caso
negativo, justificar la no pertenencia.


9. Obtener una gramtica 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::=aaA
E::=aa }


10. Sea la gramtica G, hallar su FNG equivalente.

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

11. La siguiente gramtica genera el lenguaje de expresiones regulares
0*1(0+1)*:
S >A1B
A > 0A | c
B >0B | 1B | c

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

a. 00101
b. 1001
c. 00011

12. Obtened una gramtica regular para los siguientes lenguajes:

a. a*b+a
b. a*b+b*a
c. (a*b+b*a)*

13. Construid un autmata finito para las siguientes gramticas regulares:

a. S > aS | bB | b
B >cC C
> aS

b. S > abA | B | baB | c
A > bS | b
B >aS



14. Considerad la GIC G definida por las producciones

S > aS | Sb | a | b

Demostrad por induccin sobre la longitud de la cadena, que ninguna cadena de
L(G) tiene ba como subcadena.

15. Dada la gramtica G

S >aS | aSbS | c

a. Demostrad que es ambigua especificando dos posibles rboles de derivacin
para la cadena aab.
b. Encontrad otra gramtica que genere L(G) y no sea ambigua
16. Obtener una gramtica independiente del contexto para cada uno de los
siguientes lenguajes independientes del contexto:

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

17. Convertir las siguientes gramticas a 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 > i
E >jF
F >dcGGG | cF G
G>kF
H >Hlm




18. Dado el lenguaje

L = { vv
I
| siendo v e L(M) A M el AFN de la figura}

a. Construid una gramtica independiente del contexto que genere el lenguaje L
del enunciado.






0
0



q
0
q
1

1


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



a. L = { a
i
b
j
c
i+j
| i, je N, (i-j) es par }
b. L = { a
n
b
m
c
p
| n0, m1, pn+m}

20. Construir la gramtica para el siguiente lenguaje L= { x / x {0, 1}
*
y x
contiene la subcadena 00 x contiene la subcadena 11}


21. Construir la gramtica para el siguiente lenguaje L= {xc
3m
/ x {a, b}
*
y la
cantidad de bs es par y m 0}.
22. Sean las gramticas siguientes, definir el lenguaje descrito por cada una de ellas.
1. Sean las siguientes gramticas.
(*+ * + * +)
Producciones:
S ->
S -> A
A -> AA
A -> c

Cadenas que genera:
,c,cc,ccc,
Lenguaje Descrito:
*

+

(* + * + * +)
Producciones:
S ->
S -> A
A -> cAd
A -> cd

Cadenas generadas:
,cd,ccdd,cccddd,
Lenguaje Descrito:
*

+

(* + * + * +)

S ->
S -> A
A -> Ad
A -> cA
A -> c
A -> d

Cadenas generadas:
,c,d,cc,cd,cccddd,ccccdddd,
Lenguaje Descrito:
*

+

(* + * + * +)

Producciones:

S -> cA
S -> A
A -> d
A -> cA
A -> Bd
B -> d
B -> Bd

Cadenas generadas:
cd,cdd,cdd,ccdd,cccddd,
Lenguaje Descrito:
*

+

(*+ * + * +)
S ->
S -> A
A -> AcA
A -> c

Cadenas generadas:
{c,ccc,ccccc,ccccccc,.}
Lenguaje Descrito:
*

+


23. Sean los lenguajes siguientes, describir sus gramticas
regulares.

*

+
(*+ * + )
P1:
S -> 1B
S -> 0A
B -> 0C
B -> 0
B -> 1C
C -> 0


* ()

+
(* + * + )
P1:
S -> c
S -> A
A -> 0A
A -> 1A
A -> cB
B -> 0B
B -> 1B
B ->

*

()

+
(* + * + )
P1:
S -> c
S -> A
A -> 0A
A -> 1A
A -> cB
B -> 0B
B -> 1B
B ->


*

+
(*+ * + +)
P1:
S -> 1A
A -> 0A
A -> 0
24 A partir de la gramtica dada por:
S aE , E A | B , A aA | B , B bB | b
derive las cadenas ab, ab
3
, aa
3
b. Es posible derivar abab?
25 Obtener una gramtica regular para los siguientes lenguajes:
(a) a*b a
(b) a*b b*a
(c) (a*b b*a)*
26 La gramtica regular dada por: S bA | aB |
A abaS
B babS

Genera un lenguaje regular. Encuentre un autmata finito y una expresin regular para
este lenguaje.
27 Obtenga una gramtica regular que genere el lenguaje consistente en una o mas copias del
patrn xy.
28 Muestre que es posible modificar la gramtica que se presenta a continuacin para formar
una gramtica regular, sin cambiar el lenguaje que genera.
S yX | aB | ; X xxX ; X yY ; Y
29 Dibuje el diagrama de transiciones para los autmatas finitos que aceptan los lenguajes
generados por las gramticas regulares que se presentan a continuacin. 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 gramtica regular que genera el lenguaje aceptado por cada uno de los siguientes
autmatas finitos.


(a) (b)



(c) (d)

31 En la definicin de gramtica regular, se dijo que si en el lado derecho de una produccin hay
un smbolo no terminal, entonces este debe estar ubicado en el extremo derecho. Esto
corresponde a la generacin de cadenas de izquierda a derecha y por tal razn este tipo de
gramticas son llamadas gramticas regulares por la derecha. Existen tambin las gramticas
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 smbolos no terminales y w es una cadena perteneciente a E*.
(a) Obtenga una gramtica regular por la izquierda para el lenguaje {a
n
baa | n > 0}.
(b) Obtenga las gramticas regulares por la izquierda y por la derecha para el lenguaje
dado por:
{w e {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 smbolos no terminales) ser derivada
desde el smbolo inicial S en una gramtica regular por la derecha? Explique.
GRAMATICAS INDEPENDIENTES DEL CONTEXTO, RBOLES DE DERIVACIN, AMBIGUEDAD Y
FORMAS CANNICAS PARA LAS GIC.
a,b
q0
a
a
b
b
q3
b
a q1
q2
q2 q3
q0 q1
a b
a b
a
b
a
b
q0 q1
a,b
a
b,c
c
q1 q0 q2 q3
a
a
b
b a,b
a,b
33 Dada la gramtica independiente del contexto: S AA ; A AAA | a | bA | Ab
Obtenga la derivacin para la cadena b
2
aba
2
ba.
34 La gramtica G independiente del contexto dada por: S aSb | aSa | bSa | bSb | , no
es una gramtica regular, aunque L(G) es un lenguaje regular. Obtenga una gramtica regular G
tal que L(G) = L(G).
35 Obtenga una gramtica independiente del contexto para cada uno de los siguientes lenguajes
independientes de contexto?
(a) {a
m
b
n
| m > n}
(b) {w e {a,b}* | w tiene el doble de as que de bs}
(c) {a
m
b
n
| n s m s 2n}
(d) {a
m
b
n
c
p
d
q
| m+n > p+q}
36. Sea la gramtica independiente del contexto dada por:
S aA ; S bT ; T aa
Encuentre el rbol de derivacin para las cadenas aaabaa, aabaa y abaa.
Es posible derivar la cadena aaaba?
37 Sea la GIC dada por: R a | b | c | c | | | (R - R) | (R R) | R*
donde E = {a,b,c,(,),c,|,-,*}.
Realice paso a paso 4 derivaciones distintas para la cadena ((a b)* - c) y encuentre el
correspondiente rbol de derivacin. Es esta una gramtica ambigua?
38 Demuestre que la siguiente gramtica es ambigua
S bA | aB ; A a | aS | bAA ; B b | bS | aBB
39. Para la gramtica del ejercicio 38, encuentre una gramtica no ambigua que genere el mismo
lenguaje.
40 Obtenga una gramtica equivalente (que genere el mismo lenguaje), simplificando la
gramtica siguiente:
S Aa | B | D ; B b ; A aA | bA | B ; C abd

41 A partir de la gramtica presentada a continuacin (donde S es el smbolo inicial), obtenga
una gramtica 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 gramtica y obtenga el conjunto de smbolos 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 gramticas 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 gramtica independiente del
contexto.
S CB | D
A bbC
B Sc | ddd
C eA | f | C
D E | SABC
E gh
45 Dado el autmata de la figura


Escribir todas las reglas de la gramtica equivalente asociadas a la transicin
S(p,y;x)=(q,y)

46 Para cada uno de los siguientes lenguajes dar una gramtica general que los genere:


47 Sean G1 = (N,T,P1,S) y G2 = (N,T,P2,S) gramticas generales.
Demostrar las siguientes armaciones:
Concatenacin: Existe una gramtica general G tal que L(G) = L(G1)L(G2), i.e. tal que el lenguaje
que genera se obtiene mediante concatenacin de cadenas de L(G1) con cadenas de L(G2).
Interseccin: Existe una gramtica general G tal que el lenguaje que genera es L(G1) L(G2).
Unin: Existe una gramtica general G tal que el lenguaje que genera es L(G1) L(G2).

48 Considere la siguiente gramtica libre de contexto:
S S S + | S S * | a
y la cadena aa + a*.
a) Proporcione una derivacin por la izquierda para la cadena.
b) Proporcione una derivacin por la derecha para la cadena.
c) Proporcione un rbol de anlisis sintctico para la cadena.
d) La gramtica es ambigua o no? Justifique su respuesta.
e) Describa el lenguaje generado por esta gramtica.
49 Disee gramticas 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 palndromos; es decir, que la cadena se lea
igual al derecho y al revs.
c) El conjunto de todas las cadenas de 0s y 1s con un nmero igual de 0s y 1s.
d) El conjunto de todas las cadenas de 0s y 1s con un nmero 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 gramticas regulares lineales a la derecha que generen cada uno
de los siguientes lenguajes sobre el alfabeto terminal E = {a, b, c}
a) { x eE* : |x|a mod 2 = 0 }
b) { x eE* : x empieza por a y contiene la subpalabra bbb }
c) { x eE* : x no contiene tres b's consecutivas }
d) { x eE* : |x|a + |x|b mod 3 = 0 }
e) { x eE* : x contiene las subpalabras aa, bb y cc }
f) { x eE* : x no contiene las subpalabras aba ni aca }
g) { x eE* : cada aparicin de a en x es precedida de b o seguida de c }
h) { x eE* : x no contiene ninguna aparicin de la subcadena aa despus de la
ltima aparicin del smbolo c }
i) { x eE* : x contiene dos as separadas por un nmero impar de smbolos }
j) { x eE* : 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, E, P, S) una gramtica lineal a la derecha, con
N={S,A,B} y E = {a ,b }, y sean las siguientes palabras: S, A, AB, c, aaA, abaS, bbab,
aSba, Baaab, abAS, abBAbSb.
a ) Cules de ellas podran ser formas sentenciales de G?
b ) Describe la estructura general de una forma sentencial de G.
c ) Demuestra por induccin que las formas sentenciales de G no pueden ser
distintas de lo descrito en el apartado anterior.

52. (Ejercicio especial) Una Gramtica cuasi-regular a la derecha se define como
una gramtica G = (N, E, P, S), donde las reglas de P responden a alguna de las 3
siguientes formas: A c, A aB, A a, con A,BeN, aeE. Considera el siguiente
algoritmo:

Entrada: G = (N, E, P, S) gramtica cuasi-regular a la derecha
Salida: INCOGNITA
Procedimiento: Construir INCOGNITA = ( N1, E, o, S, F) donde

N1 = N {Z}
F = {Z} {A: A ce P }
Beo(A,a) AaBeP
Zeo(A,a) AaeP

a) Aplica el algoritmo a la gramtica 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 expresin regular r = (a + b + c)(b * +c *) + ab *
Construir una gramtica regular equivalente.
54 una gramtica para los mltiplos de 8, escritos en forma binaria. (Algoritmo y datos de
entrada).
55 Dada la expresin regular r = (a + bc)(ab + c)
*
+ ca
*
c
*

Hallar
a) una gramtica cuyo lenguaje sea r
56 Construir una gramtica para los mltiplos de 8, escritos en forma decimal.
57 Dada la expresin regular r = (01
*
0)
*
+ (01)
*

a) Hallar una gramtica equivalente.

58 Buscar una expresin regular para el lenguaje de la gramtica
A:= 0A / 0B / 0D / 0
B:= 1C / 1D /1
C:= 1B / 0D / 0

59. Dada la expresin regular r=(ab+bb*)*+a*(b+ab) sobre el alfabeto ={a,b}
Construir una gramtica limpia para dicho lenguaje
60 Para la siguiente gramtica 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 expresin regular mediante la aplicacin de la resolucin del Teorema de
Anlisis de Kleene.
Dar el conjunto de cadenas de longitud menor que 4 generadas por G.

61 Dada la gramtica:

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

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

62 Dadas las gramticas 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, obtn gramticas regulares que permitan generar
los siguientes lenguajes:
L1 L2
L1 L2
L1*
L1

Вам также может понравиться