Documentos de Académico
Documentos de Profesional
Documentos de Cultura
...
S
2
S
1
S
f
error
S
n-1
...
)
S
3
S
2
S
1
S
n
S
0
( ( ( ( ( (
) ) )
)
)
) )
)
( ( (
(
) )
Ejercicios de Teora de Autmatas I 10
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 1.4
1.- Identifique los puntos donde existe no determinismo en el siguiente diagrama de transiciones:
Ejercicios de Teora de Autmatas I 11
Jos Garza
Solucin:
2.- Utilizando mtodos intuitivos y sui generis, modifique el diagrama de transiciones de la siguiente figura (fig. 1.17) para que
acepte las mismas cadenas que antes, pero ahora sin ramificaciones no deterministas.
Solucin:
Acepta dos clases de cadenas:
1: (dgito)
n
(punto) (dgito)
m
, m, n > 1
2: (dgito)
r
r > 1
La primera clase podra reducirse a la segunda, si modificamos el diagrama original de forma que el estado al que llega tras (dgito)
n
,
(el 2) sea de aceptacin. De esta forma no es necesaria la rama del estado 5:
dgito
dgito
letra
dgito
dgito
letra
letra
dgito
letra
2
1
3
dgito
5
dgito - dgito
4
1 3
2
dgito
dgito
3 2 1
4
dgito -
dgito
dgito dgito
3
1
2
letra
dgito
letra
letra
dgito
dgito
letra
3.- Muestre que cada autmata finito determinista (S, E, o, 1, F), es un autmata finito no determinista, demostrando que la funcin
de transicin o puede representarse como un subconjunto de SxExS.
Solucin:
En los deterministas, o es una funcin:
S S x E
o
A cada elemento de SxE le corresponde uno slo de S. Por eso, o es un subconjunto de SxExS formado por todos los pares posibles
de SxE, junto con un slo elemento de S.
Al ser o un subconjunto de SxExS, cumple las condiciones de la definicin de autmata finito determinista.
4.- Empleando las tcnicas presentadas en la demostracin del teorema 1.3, dibuje un diagrama de transiciones para un autmata
finito determinista que acepte las mismas cadenas que el autmata finito no determinista representado en el siguiente diagrama de
transiciones:
2 1
3
a
a
b
b
Solucin:
1, 2, 3
3
2, 3
2
1, 2
1, 3
a
b
vaco
1
a
b a
b
b
a b
a
a b
a b
a b
Ejercicios de Teora de Autmatas I 12
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 1.5
1.- Elabore una lista con con todas las frases generadas por esta gramtica:
<frase> <sustantivo> <predicado> <punto>
<sujeto> <sustantivo>
<sustantivo> Mara
<sustantivo> Juan
<predicado> <verbo intransitivo>
<predicado> <verbo transitivo> <objeto>
<verbo intransitivo> patinar
<verbo transitivo> golpear
<verbo transitivo> quiere
<objeto> a <sustantivo>
<punto> .
Solucin:
Mara patina. Juan patina.
Mara golpea a Juan. Juan golpea a Juan.
Mara golpea a Mara. Juan golpea a Mara.
Mara quiere a Juan. Juan quiere a Juan.
Mara quiere a Mara. Juan quiere a Mara.
2.- Muestre que es posible modificar la gramtica que se presenta a continuacin (con el smbolo inicial S) para formar una
gramtica regular, sin cambiar el lenguaje que genera. Cul de los ejercicios de alguna seccin anterior es en esencia el mismo
problema, aunque en un contexto diferente?.
S y X
X x x X
X y Y
Y
Solucin:
Frases que genera: y (x x)
n
y ; n > 0
Para que sea regular, debemos cambiar la regla X x x X, manteniendo el mismo lenguaje generado. Para ello, sustituimos la
antedicha regla por estas otras dos:
X x Z
Z x X
En consecuencia, la gramtica modificada es:
S y X
X x Z
Z x X
X y Y
Y
Este problema es, en esencia, el mismo que el 4 de la seccin 1.1. En ambos se descompone una cadena de longitud mayor que la
unidad, en varias de longitud unidad.
Ejercicios de Teora de Autmatas I 13
Jos Garza
3.- Convierta la siguiente gramtica regular en otra gramtica regular que no contenga reglas de reescritura cuyos lados derechos
consistan en un slo terminal, pero que a la vez genere el mismo lenguaje. Describa el lenguaje generado.
S x S
S y
S z
Solucin:
Lenguaje generado: { y, z, xy, xz, xxy, xxz, xxxy, xxxz, ..., x...xy, x...xz }, en forma compacta: {x
m
y, x
n
z: m,n > 0, m, n eN }
Gramtica modificada:
S x S
S y Y
Y
S z Z
Z
4.- Dibuje un diagrama de transiciones para un autmata finito que acepte el lenguaje generado por la gramtica regular (con
smbolo inicial S) que se presenta a continuacin. Describa el lenguaje generado.
S
S x X
S y Y
Y y Y
Y
X x X
X
Solucin:
Lenguaje generado: { , x
m
, x
n
: m, n N } e
Diagrama de transiciones:
S
Y
X
x
x
y
y
5.- Presente una gramtica regular que genere el lenguaje aceptado por el autmata finito cuyo diagrama de transiciones se muestra
a continuacin:
P
N
S
M
a a
b
b
a
b
b
a
Solucin:
S a M
S b N
M a P
M b M
M
N a N
Nota: Las reglas 3, 7, 9 y 10 pueden ser suprimidas. Son improductivas. Si se cae en el estado P,
luego no se puede llegar a ningn estado de aceptacin. Aunque la gramtica resultante de suprimir
estas reglas sea diferente, tiene el mismo lenguaje. Dmonos cuenta que se pide una gramtica, no
la gramtica.
N b P
N
P a P
P b P
Ejercicios de Teora de Autmatas I 14
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 1.6
1.- Cules de los lenguajes descritos en las siguientes expresiones regulares para el alfabeto { x, y, z } son infinitos?. Describa, en
una sla frase, el contenido de cada uno de estos lenguajes infinitos; y elabore una lista exhaustiva de las cadenas de los lenguajes
finitos.
a) (x (y z*) ) b) (x* (y z)) c) ((z y) x) d) (x y)*
e) (y y)* f) (x* y*) g) ((x x) z) h) ((z y) x)
Solucin:
a) Por tener la operacin estrella de Kleene, es infinito. Las frases son de la forma: xy, xyz, xyzz, xyzzz,..., xyz...z.
b) Infinito. Las frases son de la forma: yz, xyz, xxyz, xxxyz,..., x...xyz.
c) Finito. El conjunto de frases generado es: {zx, yx}
d) Infinito. El conjunto de frases es de la forma (x y) (x y) (x y)... es decir: ({x, y})*
e) Infinito. El conjunto de frases es {y
2n
, n N} e
f) Infinito. El conjunto de frases es de la forma x, xx, xxx,..., x...x, y, yy, yyy, ..., y...y, es decir: { x
m
, y
n
; m,n N} = {x*, y*} e
g) Finito. El conjunto de frases es: {xx, z}
h) Finito. El conjunto de frases es: {x, y, z}
2.- Dibuje un diagrama de transiciones que acepte la estrella de Kleene del lenguaje aceptado por el siguiente diagrama de
transiciones:
a
2
3
b
1
c
Solucin:
1
er
paso: Dibujamos un nuevo estado inicial (de aceptacin) y lo conectamos al diagrama original. Todos los estados que en el original
eran destino del anterior inicial, deben ser destino de este nuevo inicial, con las mismas etiquetas:
Ejercicios de Teora de Autmatas I 15
Jos Garza
2 paso: Desde cada estado de aceptacin del original, se aade un arco a cada estado que era destino del inicial original.
3.- Dibuje un diagrama de transiciones que acepte la unin de los lenguajes aceptados por los siguientes diagramas:
c
b
3
1 2
a
S
a
a
c
b) a) a
b
1 2
a
S
4
x
y b
2
1 3
3
a
Solucin:
Lenguajes generados:
a) Frases de la forma a, aba, ababa, abababa, etc.
b) Frases de la forma x, xyx, xyxyx, xyxyxyx, etc.
S
x
4
a
3
1
2
b
a
y
x
4.- Dibuje un diagrama de transiciones que acepte la concatenacin del lenguaje aceptado por
1
b
2
a
b
seguido del lenguaje aceptado por
3
4
x y
y
Solucin:
Lenguajes generados:
a) Frases de la forma a, abb, abbb, ..., ab...b, b, bb, bbb, b...b etc.
b) Frases de la forma x
m
y
n
, m, n N, m>0, n>0 e
2 3
4
x y
y
1
b
a b
x
y
5.- Construya una expresin regular que describa el lenguaje aceptado por el autmata del siguiente diagrama de transiciones:
Ejercicios de Teora de Autmatas I 16
1
2
a a
b
a
b
b
3
5
4
b
a
Solucin:
| | | | | | | |
(a b*) (a b*) a (b a*) (b a*) b $ $
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 2.1
1.- Disee un autmata de pila M tal que L(M) = { x
n
y
m
x
n
: m, n e N }
Solucin:
4
x, ; x y, ; x, x ;
, # ; , ; , ; , ; #
i 1 3 2
Es el autmata pedido. Es no determinista. Segn el teorema 2.1, siempre se puede adaptar de forma que vace su pila antes de
aceptar la cadena. De hecho, ya lo hace.
Si se pidiera un autmata determinista para L(M) = { x
n
y
m
x
n
: m, n e N }, podra tenerse este:
4
x, ; x y, ; x, x ;
, # ; x, x ; y, ; , ; #
i 3
2 1
Su funcionamiento es el pedido.
Cuando m=0 y n=0, se acaba en el estado 1.
Cuando m=0 y n=0, se acaba en el estado 2.
Cuando m=0 y n=0, se acaba en el estado 1.
Cuando m=0 y n=0, se acaba en el estado 4.
Es determinista, pero si acaba en los estados 1 2 no vaca su pila al aceptar la cadena. El teorema 2.1 es aplicable, pues los
deterministas estn incluidos en los no deterministas. Pero el resultado (debido al paso 2 de la demostracin del teorema, pgina 81)
es un autmata de pila no determinista.
Se trata de un ejemplo similar al de la figura 2.22: un autmata de pila determinista que no puede modificarse para que (sin alterar el
lenguaje aceptado) vace su pila al aceptar la cadena. El razonamiento para demostrarlo es idntico al presentado all.
Estos dos ejemplos muestran que el conjunto de lenguajes deterministas se subdividen en dos: los que deben vaciar su pila al terminar
y los que pueden no vaciarla.
LENGUAJES INDEPENDIENTES DEL CONTEXTO DETERMINISTA
Aceptados por:
9 autmatas de pila deterministas que pueden vaciar o no vaciar su pila antes de aceptar una cadena
9 analizadores sintcticos LR(k); los cuales son equivalentes a los antedichos autmatas (pgina 133)
{ x : n e N } U { x y : n e N } Pgina 110, figura 2.22.
otro ejemplo: {x
n
yx | n e N
+
} {x
n
yx
n
| n e N
+
}
LENGUAJES ACEPTADOS POR AUTMATAS DE PILA DETERMINISTAS QUE DEBEN VACIAR SU PILA ANTES
DE ACEPTAR UNA CADENA
{ x y : n e N } No es regular, pues podra ser n mayor que el nmero de estados del autmata (teorema 1.2)
n n +
otros ejemplos: {x
m
y
n
x
n
| m, n e N
+
}, {x
n
y
n
z | n e N
+
}, {x
n
yx
n
| n e N
+
}.
+ n n + n
Por supuesto (debido a que un conjunto est incluido en el otro), puede haber algunos (pero slo algunos) autmatas de pila
deterministas que puedan modificarse para que vacen su pila al aceptar la cadena.
Si se pidiera un autmata determinista para L(M) = { x
n
y
m
x
n
: m, n e N+ }, podra tenerse este:
4
x, ; x y, ; x, x ;
, # ; x, x ; y, ; , ; #
i 1 3 2
Su funcionamiento es el pedido.
Como m=0 y n=0, slo se acaba en el estado 4; y en este estado la pila est vaca.
Ejercicios de Teora de Autmatas I 17
Jos Garza
2.- Cul es el lenguaje que acepta el autmata de pila cuyo diagrama de transiciones es el siguiente?
x, ; x
y, x ;
Solucin:
Acepta la cadena vaca.
Segn la rama superior, toda x que se reciba, se registrar en la pila; y el estado siguiente ser de aceptacin.
Segn la rama inferior, slo se aceptar la entrada y si se puede sacar una x de la pila.
Conclusin:
Acepta cualquier cadena que (empezando a contar por la izquierda) contenga un nmero de y menor o igual a que de x. Pueden
estar intercaladas
Ejemplos: xyx, xxy, xxyxyx, etc.
3.- Modifique el diagrama de transiciones del ejercicio 2 para que el autmata de pila acepte el mismo conjunto de cadenas, pero
con su pila vaca.
Solucin:
p
q
1 i
, ; #
x, ; x
, ;
, x ;
, # ;
y, x ;
4.- Muestre cmo pueden combinarse dos autmatas de pila M
1
y M
2
para formar un slo autmata de pila que acepte el lenguaje
L(M
1
) U L(M
2
).
Solucin:
Exactamente igual que en la seccin 1.6:
- Creacin de un nuevo estado inicial y eliminacin de la condicin de inicial en los originales.
Si alguno de los originales era de aceptacin, el nuevo debe ser de aceptacin.
- Hasta cada estado que era destino del original inicial, se lleva un arco desde el nuevo inicial, con la misma rotulacin.
Ejercicios de Teora de Autmatas I 18
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 2.2
1.- Muestre que toda cadena derivada por la izquierda de una gramtica independiente del contexto puede derivarse tambin por la
derecha.
Solucin:
z z
S
z
b M b
N
z
a M a
M
El lado por donde se empieza a construir (por la derecha o por la izquierda) slo tiene relevancia en las etapas intermedias de la
construccin del rbol. Pero con la construccin terminada, no es relevante el lado por donde se empez. La cadena es la misma en
ambos casos.
2.- Demuestre que la gramtica presentada a continuacin es ambigua, mostrando que la cadena ictictses tiene derivaciones que
producen distintos rboles de anlisis sintctico.
S icts
S ictSeS
S s
Solucin:
Podemos mostrar simultneamente una analoga con un esquema de control de flujo tpico de lenguajes de programacin. Para ello
haremos las siguientes identificaciones:
i if
c (condicion)
t {
e else
s enunciado
Con ellas, la primera regla sirve para describir el esquema simple:
if (condicion)
{ enunciado
y la segunda regla sirve para describir el esquema:
if (condicion)
{ enunciado 1
else
{ enunciado 2
Los rboles sintcticos son:
1.- Cuando el else est asociado al if sin else ms inmediatamente anterior (al if interno):
i c t S e S
i c t S
S if (condicion)
{
if (condicion)
{
enunciado
}
else
{
enunciado
}
}
s s
2.- Cuando el else est asociado al primer if (al if externo):
S
s
s
i c t S
i c t S e S
Ejercicios de Teora de Autmatas I 19
Jos Garza
if (condicion)
{
if (condicion)
{
enunciado
}
}
else
{
enunciado
}
4.- Demuestre que la unin de dos lenguajes independientes del contexto tambin es independiente del contexto, mostrando cmo
pueden combinarse dos gramticas independientes del contexto de dos lenguajes originales para formar una gramtica independiente
del contexto que genere la unin.
Solucin:
GA
S
A
w
A1
...
S
A
w
Ap
N
1
w
A1
...
N
q
w
Aq
GB
S
B
w
B1
...
S
B
w
Br
M
1
w
B1
...
M
s
w
Bs
- Se crea un nuevo estado inicial
- Se aaden una regla de sustitucin desde el nuevo inicial hasta cada uno de los que eran destino de alguno de los iniciales
originales.
G
S w
A1
...
S w
Ap
S w
B1
...
S
B
w
Br
N
1
w
A1
...
N
q
w
Aq
M
1
w
B1
...
M
s
w
Bs
5.- Convierta la siguiente gramtica, con el signo inicial S, en una gramtica con forma normal de Chomsky que genere el mismo
lenguaje.
Ejercicios de Teora de Autmatas I 20
Z z
Solucin:
S x S y
S w N z
N S
N
a) Preparacin previa: Eliminacin de la regla , tal como se explica en los prrafos anteriores al teorema 2.4
S x S y
S w N z
S w z
N S
b) Cambio de los terminales no aislados, segn se explica en el primer paso del teorema 2.4.
S X S Y
S W N Z
S W Z
N S
X x
Y y
W w
Z z
Esto produce una gramtica G independiente del contexto en la cual el lado derecho de cada regla de escritura es un solo terminal o
una cadena de no terminales
c) Separacin de dos no terminales, segn se explica en el segundo paso del teorema 2.4.
S X R
R S Y
S W T
T N Z
S W Z
N S
X x
Y y
W w
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
Al llegar a esta etapa tenemos una gramtica G independiente del contexto, para la cual el lado derecho de cada regla de reescritura
es un solo terminal, dos no terminales o un solo terminal.
d) Sustitucin de las reglas con un nico no terminal en el lado derecho, segn se explica en el tercer paso del teorema 2.4.
Resulta:
S X R
R S Y
S W T
T N Z
S W Z
N X R
N W T
N W Z
X x
Y y
W w
Z z
Las secuencias
N
n
N
n-1
...
N
1
Fin
1
N
1
Fin
2
...
N
1
Fin
m
Se sustituyen por
N
n
Fin
1
N
n
Fin
2
...
N
n
Fin
m
Francesc Xavier Torres consigue una gramtica con menos reglas, al emplear una estrategia alternativa:
Las reglas
N
n
N
n-1
N
n-1
N
n-2
...
N
2
N
1
Son aplicadas en todos los lugares donde aparezcan N
n
, N
n-1
, ..., N
2
Resulta:
S X R
R S Y
S W T
T S Z
S W Z
X x
Y y
W w
Z z
En nuestro caso tenemos (NS). La aparicin de la N en (TN Z) del paso c) es sustituida, obteniendo (TS Z).
Ejercicios de Teora de Autmatas I 21
Jos Garza
EJERCICIOS DE LA SECCIN 2.3
1.- Aplique el teorema 2.5 para demostrar que el lenguaje { x
m
y
n
x
m
y
n
x
m
y
n
: m, n N e
+
} no es independiente del contexto.
Solucin:
{ x
m
y
n
x
m
y
n
x
m
y
n
: m, n N e
e
+
} tiene infinitas cadenas.
{ x
m
y
n
x
m
y
n
x
m
y
n
: m, n N
+
} no contiene cadenas de la forma x
m
y
n
v
p
y
n
w
p
y
n
: m, n, p N e
+
, p m, es decir, s v =
p
u w
p
t
Como no cumple la conclusin del teorema 2.5, es absurdo pensar que pueda cumplir la hiptesis; es decir, no es independiente del
contexto.
2.- Proporcione ejemplos de los siguientes lenguajes:
a) Un lenguaje no independiente del contexto.
c) Un lenguaje independiente del contexto pero no determinista.
c) Un lenguaje independiente del contexto determinista pero que no es aceptado por un autmata de pila determinista que
tenga que vaciar su pila
d) Un lenguaje que es aceptado por un autmata de pila determinista que tiene que vaciar su pila, pero que no es regular.
Solucin:
a) { x
n
y
n
z
n
: n N e
+
} Es consecuencia del teorema 2.5, (pgina 104).
b) { x
n
y
n
: n e N
+
} U { x
n
y
2n
: n e N
+
} Es consecuencia del teorema 2.6.
c) { x
n
: n e N
+
} U { x
n
y
n
: n N e
+
} Pgina 110, figura 2.22.
d) { x
n
y
n
: n e N
+
} No es regular, pues podra ser n mayor que el nmero de estados del autmata.
3.- Trace la porcin pertinente de un diagrama de transiciones para un autmata determinista que pasar del estado p al q leyendo
una x, extrayendo una y e insertando una z, si la cima de la pila contiene una y; o pasar al estado q leyendo una x, sin extraer nada e
insertando una z, si la pila no tiene una y en su cima.
Solucin:
Este diagrama :
p q
x, ; z
x, y ; z
No es determinista. Deberemos disearlo de otra forma. La transicin (p, x, ; q, z) hay que sustituirla por todas las que sean
necesarias para eliminar la indeterminacin. Sustituimos l una vez por cada uno de los smbolos de la pila, pero de forma que
globalmente no tengan ningn efecto:
Ejercicios de Teora de Autmatas I 22
4.- Identifique las situaciones que provocaran incertidumbres en la ejecucin de una autmata de pila que contuviera las
transiciones (p, , y; q, z) y (p, x, ; r, w).
x, ; w
, ; z
x, # ; #
x, z ; z
x, x ; x
x, y ; z
p
r
q
, y ; z
p
q
r
Solucin:
a) (p, , y; q, z) Aplicable sea cual sea la entrada, cuando en la cima de la pila hay una y.
b) (p, x, ; r, w) Aplicable cuando la entrada es x, sea cual sea la cima de la pila.
En conclusin: Existe un nico caso en el que son aplicables ambas transiciones; cuando la entrada es x y la cima de la pila es y. En el
resto de casos, siempre habr alguna transicin de las dos que no se pueda aplicar.
Ejercicios de Teora de Autmatas I 23
Jos Garza
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
EJERCICIOS DE LA SECCIN 2.4
1.- Reescriba el segmento de la figura 2.30 utilizando una estructura REPEAT_UNTIL en lugar de una estructura WHILE.
Insertar(S) ;
Leer(Smbolo) ;
WHILE Pila no vaca DO
CASE CimaPila OF
Terminal:
IF CimaPila = Smbolo
THEN
Extraer de la pila ;
Leer(Smbolo) ;
ELSE
Salir a rutina de error ;
END ;
No Terminal:
IF Tabla[CimaPila, Smbolo] = Error
THEN
Reemplazar CimaPila por Tabla[CimaPila, Smbolo] ;
ELSE
Salir a rutina de error ;
END ;
END ;
END ;
IF Smbolo = FDC THEN Salir a rutina de error; END ;
Solucin:
Insertar(S) ;
Leer(Smbolo) ;
REPEAT
CASE CimaPila OF
Terminal:
IF CimaPila = Smbolo
THEN
Extraer de la pila ;
Leer(Smbolo) ;
ELSE
Salir a rutina de error ;
END ;
No Terminal:
IF Tabla[ CimaPila, Smbolo] = Error
THEN
Reemplazar CimaPila por Tabla[CimaPila, Smbolo] ;
ELSE
Salir a rutina de error ;
END ;
END (* Del CASE *)
UNTIL Pila vaca ;
IF Smbolo = FDC THEN Salir a rutina de error; END
2.- Traduzca el diagrama de transiciones mostrado a continuacin, directamente a un segmento de programa que analice el lenguaje
en cuestin. Cules son las incertidumbres que deben resolverse para obtener un autmata determinista ?.
i
z, z ;
y, y ;
x, x ;
, S ; ySz
, # ;
, S ;
, ; S
, S ; xSz
, ; #
q
f
p
Solucin:
a) Segmento de programa:
Estado := i ;
Insertar(#) ;
Estado := p ;
Insertar(S) ;
Estado := q ;
Leer(Smbolo) ;
REPEAT
CASE CimaPila OF
S:
CASE Smbolo OF
x:
Extraer(S) ;
Insertar(xSz) ;
y:
Extraer(S) ;
Insertar(ySz) ;
END ;
x:
IF Smbolo = x
THEN
Salir a rutina de error ;
ELSE
Extraer(x) ;
Leer(Smbolo) ;
END ;
y:
IF Smbolo = y
THEN
Salir a rutina de error ;
ELSE
Extraer(y) ;
Leer(Smbolo) ;
END ;
z:
IF Smbolo = z
THEN
Salir a rutina de error ;
ELSE
Extraer(z) ;
Leer(Smbolo) ;
END ;
END ; (* Del CASE *)
UNTIL Pila vaca
Extraer(#) ;
IF Smbolo = FDC THEN Salir a rutina de error; END
Estado := f ;
b) Incertidumbres:
S
S x S z
S y S z
Ejercicios de Teora de Autmatas I 24
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN de la UNED
ASIGNATURA: TEORA DE AUTMATAS I
Tutora del Centro Asociado de Plasencia
3.- Disee una tabla de anlisis sintctico LL(1) para la siguiente gramtica:
S x S z
S y S z
S
Solucin:
x y FDC
S xSz ySz
4.- Cuntos smbolos de preanlisis requerira un analizador sintctico LL al analizar la sintaxis de cadenas basadas en la
gramtica siguiente ?.
S x S y
S x y
Disee la tabla de anlisis sintctico correspondiente.
Solucin:
A pesar de que las cadenas admisibles son de la forma x
n
y
n
; ( ), es decir, que pueden tener cualquier longitud finita, bastan dos
smbolos de preanlisis:
n 1 >
Tabla de preanlisis:
xx xy FDC
S xSy xy error
Ejercicios de Teora de Autmatas I 25
Jos Garza
EJERCICIOS DE LA SECCIN 2.5
1.- Disee el diagrama de transiciones del autmata de pila correspondiente al analizador sintctico LR(k) de la siguiente gramtica:
S x S z
S y S z
S
z, ; z
y, ; y
x, ; x
, ySz ; S
, # ;
, ; S
, S ;
, xSz ; S
, ; #
i q
f
p
Solucin:
Por la regla S , existira la tentacin de permitir que el estado inicial fuera de aceptacin. Hay dos razones para no proceder as:
1 Se debe posibilitar la reduccin yz en yz; y posteriormente en ySz (recurdese que es LR).
2 El diseo del analizador sintctico ser ms fcil si slo debe comprobar la posible llegada a un nico estado de aceptacin
(f); en lugar de estar obligado a comprobar ms estados de aceptacin.
2.- Identifique la derivacin obtenida por el autmata de pila construido en el anterior ejercicio al analizar la cadena yxyzzz
Solucin:
N de fila Estado actual Contenido de la pila Resto de la entrada
01 p # yxyzzz
02 p #y xyzzz
03 p #yx yzzz
04 p #yxy zzz
05 p #yxyz zz
06 p #yxS zz
07 p #yxSz z
08 p #yS z
09 p #ySz
10 p #S
11 q #
12 f
y z
S
x z
S
y z
S
3.- Construya una tabla de anlisis sintctico LR(1) para la siguiente gramtica:
S x S y
S
Solucin:
5
1
3
4
2
S
S
x
y
x
x y FDC S
1 desplazar 2 aceptar 5
2 desplazar 2 S 3
3 desplazar 4
4 S x S y 3
5 aceptar
Ejemplo: cadena x x x y y y
Contenido de la pila Resto de la entrada
# (1)
# (1) x (2)
# (1) x (2) x (2)
# (1) x (2) x (2) x (2)
# (1) x (2) x (2) x (2) S (3)
# (1) x (2) x (2) x (2) S (3) y (4)
# (1) x (2) x (2) S (3)
# (1) x (2) x (2) S (3) y (4)
# (1) x (2) S (3)
# (1) x (2) S (3) y (4)
# (1) S (5)
x x x y y y
x x y y y
x y y y
y y y
y y y
y y
y y
y
y