Documentos de Académico
Documentos de Profesional
Documentos de Cultura
LENGUAJES
GRAMTICAS
Y
AUTMATAS
Segunda edicin
BORRADOR, Noviembre 2001
A Guillermo, Antonio y Paloma
LENGUAJES, GRAMTICAS Y AUTMATAS. Segunda Edicin
Juan Manuel Cueva Lovelle. Oviedo (Espaa), 2001.
Reservados todos los derechos. De conformidad con lo dispuesto en el art. 534-bis del Cdigo Penal vigente, podrn ser castigados
con penas de multa y privacin de libertad quienes reprodujeren o plagiaren, en todo o en parte, una obra literaria, artstica o cientfica
fijada en cualquier tipo de soporte sin la preceptiva autorizacin.
ISBN: 84-
Depsito legal: AS/
Impreso en
LENGUAJES, GRAMTICAS Y AUTOMATAS
TABLA DE CONTENIDOS
CAPTULO 1: INTRODUCCIN ............................................................................................. 1
CAPTULO 2: DEFINICIONES PREVIAS ............................................................................. 3
2.1 Smbolo .................................................................................................................................... 3
2.1.1 Ejemplos ........................................................................................................................... 3
2.2 Vocabulario o alfabeto ............................................................................................................. 3
Ejemplos 2.2.1 ........................................................................................................................... 3
2.3 Cadena ..................................................................................................................................... 3
Ejemplos 2.3.1 ........................................................................................................................... 4
2.4 Longitud de cadena .................................................................................................................. 4
Ejemplos 2.4.1 ........................................................................................................................... 4
2.5 Cadena vaca ............................................................................................................................ 4
2.6 Concatenacin de cadenas ....................................................................................................... 4
2.7 Universo del discurso ............................................................................................................... 5
Ejemplo 2.7.1 ............................................................................................................................. 5
2.8 Lenguaje ................................................................................................................................... 5
Ejemplo 2.8.1 ............................................................................................................................. 5
2.9 Lenguaje vacio ......................................................................................................................... 6
2.10 Gramtica ............................................................................................................................... 6
2.11 Autmata ................................................................................................................................ 6
BIBLIOGRAFA ......................................................................................................................... 96
- VII -
LENGUAJES, GRAMTICAS Y AUTOMATAS
TABLA DE FIGURAS
Fig. 1 : Relacin de inclusin entre gramticas ............................................................................ 25
Fig. 2 : Correspondencia entre gramticas y lenguajes ................................................................. 27
Fig. 3 : Diagrama de Moore ........................................................................................................... 36
Fig. 4 : Ejemplo de diagrama de Moore ........................................................................................ 37
Fig. 5 : Ejemplo de mquina de Moore ......................................................................................... 40
Fig. 6 : Correpondencia entre gramticas, leng. y autmatas ........................................................ 42
Fig. 7 : Esquema de mquina de Turing ........................................................................................ 43
Fig. 8 : Esquema de autmata lineal acotado ................................................................................. 47
Fig. 9 : Esquema de autmata de pila ............................................................................................ 50
Fig. 10 : Transicin en un autmata de pila ................................................................................... 51
Fig. 11 : Transicin en un autmata de pila ................................................................................... 52
Fig. 12 : Esquema intuitivo de un autmata finito ......................................................................... 59
Fig. 13 : Transicin entre dos estados ............................................................................................ 61
Fig. 14 : Diagrama de Moore del ejemplo 15.2.4 .......................................................................... 62
Fig. 15 : Diagrama de Moore del ejemplo 15.2.5. ......................................................................... 63
Fig. 16 : Diagrama de Moore del ejemplo 15.2.6. ......................................................................... 64
Fig. 17 : Diagrama de Moore del ejemplo 15.2.7. ......................................................................... 65
Fig. 18 : Diagrama de Moore del ejemplo 15.2.8. ......................................................................... 66
Fig. 19 : Diagrama de Moore del ejemplo 15.3.1.1. ...................................................................... 68
Fig. 20 : Diagrama de Moore del ejemplo 15.3.3.1. ...................................................................... 72
Fig. 21 : Diagrama de Moore para f(A,a)=B ................................................................................. 73
Fig. 22 : Diagrama de Moore para f(A,a)=qf ................................................................................. 73
Fig. 23 : Diagrama de Moore del ejemplo 15.4.1 .......................................................................... 74
Fig. 24 : Diagrama de Moore AFD del ejemplo 15.4.1 ................................................................. 76
Fig. 25 : Diagrama de Moore para la expresin regular vacia ....................................................... 77
Fig. 26 : Diagrama de Moore para la expresin regular a ............................................................. 77
Fig. 27 : Diagrama de Moore para la expresin regular a* ........................................................... 77
Fig. 28 : Diagrama de Moore para la expresin regular a+ ........................................................... 78
Fig. 29 : Diagrama de Moore para la expresin regular a|b ........................................................... 78
Fig. 30 : Diagrama de Moore para la expresin regular a|b ........................................................... 78
Fig. 31 : Diagrama de Moore para la expresin regular (a|b)* ...................................................... 78
Fig. 32 : Diagrama de Moore para (ac|b)* ..................................................................................... 79
Fig. 33 : Diagrama de Moore (acd|b)* ........................................................................................... 79
Fig. 34 : Construccin de Thompson para N(s|t) ........................................................................... 79
Fig. 35 : Construccin de Thompson para st ................................................................................. 80
Fig. 36 : Construccin de Thompson para s* ................................................................................ 80
Fig. 37 : Descomposicin sintactica de la expresin regular ......................................................... 80
Fig. 38 : Construccin de Thompson para r7 ................................................................................. 81
Fig. 39 : Construccin de Thompson para la expresin regular .................................................... 81
Fig. 40 : Solucin del ejercicio 16.2 .............................................................................................. 87
- VIII -
LENGUAJES, GRAMTICAS Y AUTOMATAS
CAPTULO 1: INTRODUCCIN
El objetivo de este libro de texto es introducir los conceptos tericos necesarios sobre
Teora de Lenguajes Formales, Gramticas y Autmatas para un curso universitario de
Traductores, Procesadores, Compiladores e Intrpretes de lenguajes de programacin.
El primer trabajo que desarroll teoras formales sobre gramticas y lenguajes fue
obra de Avram Noam Chomsky (1928-), quien es sin duda la figura ms destacada de la
lingistica moderna, tanto por desarrollar sus fundamentos matemticos, como por sus
teoras sobre el origen y la naturaleza de los lenguajes naturales, aunque stas ltimas son
ms discutidas (Chomsky, 1956; 1959; 1962; y 1963).
La Teora de los Lenguajes y Gramticas Formales tiene una relacin directa con la
Teora de Autmatas, siendo posible establecer entre ambas una correspondencia deno-
minada en Algebra isomorfismo.
-1-
LENGUAJES, GRAMTICAS Y AUTOMATAS
Los autmatas son sistemas que reciben informacin, la transforman y producen otra
informacin que se transmite al entorno.
-2-
DEFINICIONES PREVIAS
2.1 Smbolo
Es una entidad abstracta, que no se va a definir, pues se dejar como axioma. Al igual
que no se define punto en Geometra. Normalmente los smbolos son letras (a, b, c, . . . ,z),
dgitos (0, 1, . . ., 9), y otros caracteres (+, -, *, /, ?, . . .). Los smbolos tambin pueden
estar formados por varias letras o caracteres, as por ejemplo las palabras reservadas de
un lenguaje de programacin son smbolos de dicho lenguaje.
2.1.1 Ejemplos
Ejemplos 2.2.1
V1 = { A , B , C , D , E , F , G , H , . . . , X , Y , Z }
V2 = { a , b , c , d , 0 , 1 , 2 , 3 , 4 , * , # , + }
V3 = { 0 , 1 }
V4 = {if, then, begin, end, else, a, b, ; , =, > }
Tambin se puede definir las tablas ASCII y EBCDIC como los alfabetos de distintos
ordenadores.
2.3 Cadena
-3-
LENGUAJES, GRAMTICAS Y AUTOMATAS
Ejemplos 2.3.1
Ejemplos 2.4.1
| abcb | 4
| a + 2*b | 5
| 000111 | 6
| if a > b then a = b ; | 9
Existe una cadena denominada cadena vaca, que no tiene smbolos y se denota con
, entonces su longitud es :
| | 0
= =
-4-
DEFINICIONES PREVIAS
El conjunto de todas las cadenas que se pueden formar con los smbolos de un alfabeto
V se denomina universo del discurso de V y se representa por W(V). Evidentemente W(V)
es un conjunto infinito. La cadena vacia pertenece a W(V).
Ejemplo 2.7.1
Sea un alfabeto con una sola letra V = { a }, entonces el universo del discurso es :
2.8 Lenguaje
Alguien puede pensar que los lenguajes se pueden definir porenumeracin de las
cadenas que pertenecen a dicho lenguaje, pero este mtodo adems de ineficiente, es en
muchos casos imposible (habitualmente un lenguaje tiene infinitas cadenas). As los
lenguajes se defienen por las propiedades que cumplen las cadenas del lenguaje.
Ejemplo 2.8.1
El conjunto de palndromos (cadenas que se leen igual hacia adelante, que hacia
atrs) sobre el alfabeto {0,1}. Evidentemente este lenguaje tiene infinitas cadenas.
Algunas cadenas de este lenguaje son:
0
1
00
11
010
0110
000000
101101
111111
-5-
LENGUAJES, GRAMTICAS Y AUTOMATAS
100001
001100
1101011
0010100
Cardinal ({}) = 0
Cardinal ({}) = 1
2.10 Gramtica
2.11 Autmata
Un autmata es una construccin lgica que recibe una entrada y produce una salida
en funcin de todo lo recibido hasta ese instante.
En el caso de los Procesadores de Lenguaje un autmata es una construccin lgica
que recibe como entrada una cadena de smbolos y produce una salida indicando si dicha
cadena pertenece o no a un determinado lenguaje.
-6-
DEFINICIN FORMAL DE GRAMTICA
G = ( VT , VN , S , P )
donde :
Todas las cadenas del lenguaje definido por la gramtica estn formados con smbolos
del vocabulario terminal VT. El vocabulario terminal se define por enumeracin de los
smbolos terminales.
{VN} {VT} = {}
V+ = V {}
V* = V + {}
El smbolo inicial S es un smbolo no terminal a partir del cual se aplican las reglas
de la gramtica para obtener las distintas cadenas del lenguaje.
-7-
LENGUAJES, GRAMTICAS Y AUTOMATAS
Las producciones P son las reglas que se aplican desde el smbolo inicial para obtener
las cadenas del lenguaje. El conjunto de producciones P se define por medio de la enu-
meracin de las distintas producciones, en forma de reglas o por medio de un metalenguaje
por ejemplo BNF (Backus Naur Form) o EBNF (Extended Backus Naur Form).
Ejemplo 3.1
S ab
S aSb
Ejemplo 3.2
S ASB
A b
aaA aaBB
S d
A aA
B dcd
Ejemplo 3.3
VN = { <nmero> , <dgito> }
VT = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
S = <nmero>
Ejemplo 3.4
-8-
DEFINICIN FORMAL DE GRAMTICA
3.5 Notacin
3.5.3 Vocabulario
3.5.5 Cadenas
- 10 -
RELACIONES ENTRE CADENAS
()P
Ejemplo 4.1.1
S ab
S aSb
Se obtiene la siguiente derivacin directa, al sustituir la primera regla en la segunda :
S aabb
- 11 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
1 2
2 3
3 4
...
(m 1) m
se escribir entonces:
1 m
Ejemplo 4.2.1
Sea la gramtica G = ({S, A, B}, {a, b, c, d}, S, P) donde P son las siguientes reglas
de produccin, que en este caso se numeran para su posterior identificacin cuando se
usen.
(1) S ASB
(2) A b
(3) aaA aaBB
(4) S d
(5) A aA
(6) B dcd
Por aplicacin de derivaciones inmediatas a partir del smbolo inicial se obtiene la
derivacin :
S abddcd
- 12 -
SENTENCIAS O INSTRUCCIONES
S m y m VT
Ejemplo 5.1
aabb
Ejemplo 5.2
abddcd
- 13 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
L(G) = { VT*/S }
6.1 Propiedad
Ejemplo 6.2
Sea la gramtica definida por G2 = ({S}, {0,1}, S,P) donde P={(S 000S111),
(0S1 01)}. Determinar el lenguaje que genera.
L(G2) = {0(3n)1(3n)/n 1}
Ejemplo 6.3
- 14 -
DEFINICIN FORMAL DE LENGUAJE
Ejemplo 6.4
El lenguaje generado :
L(G4)={an bn/n 1}
Ejemplo 6.5
Solucin : Se generan sentencias del lenguaje aplicando las reglas hasta que se pueda
ver la forma general del lenguaje.
Ejemplo 6.6
- 15 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
S aB A bAA
S bA B b
A a B bS
A aS B aBB
Determinar el lenguaje que genera.
S aB ab
S bA ba
S aB abS abbA abba
S bA bbAA bbaa
S aB abS abaB ababS ababaB ababab
Se puede demostrar (Hopcroft y Ullman (1979), pp. 81-82) que el lenguaje generado
es :
Ejemplo 6.7
VN = { <nmero> , <dgito> }
VT = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
S = <nmero>
- 16 -
DEFINICIN FORMAL DE LENGUAJE
< nmero >< dgito >< nmero > 7 < nmero > 72
< nmero >< dgito > 7
< nmero >< dgito > 0
< nmero >< dgito >< nmero >< dgito >< dgito >< nmero > 235
Ejemplo 6.8
S aS
S aA
A bA
A b
Determinar el lenguaje que genera esta gramtica.
S aS aaA aab
S aA ab
S aS aaS aaaS a n S a n aA a n + 1b
L(G8) = a a* b b*
- 17 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
siendo (VN VT)+ y (VN VT)*, es decir la nica restriccin es que no puede
haber reglas de la forma donde es la cadena vacia.
7.1.1 Ejemplos
Todas las gramticas mostradas en los ejemplos del captulo 6 son de tipo 0, pues en
ninguna de ellas existe la produccin siendo la cadena vacia.
- 18 -
JERARQUA DE LAS GRAMTICAS
Ejemplo 7.2.1.1
S aB A bAA
S bA B b
A a B bS
A aS B aBB
Ejemplo 7.2.1.2
Ejemplo 7.2.1.3
S aS
S aA
A bA
A b
Ejemplo 7.2.2.1
- 19 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
S aaaaSbbbb
aSb ab
Sin embargo si se esta produccin fuera S ab o aSb abb , entonces sera de tipo
1.
Ejemplo 7.2.2.2
S abAS
abA baab
S a
A b
Las cadenas que se obtienen en cualquier derivacin de una gramtica de tipo 1 son
de longitud no decreciente, es decir :
| || |
- 20 -
JERARQUA DE LAS GRAMTICAS
siendo (VN VT)+, es decir nunca puede ser la cadena vacia, lo que implica que
| | 1 y como | A | como mnimo vale 1, queda demostrada la propiedad :
|A | ||
Tambin se puede demostrar (Fernndez y Sez Vacas, 1987, pg. 442) que si todas
las reglas de una gramtica cumplen la condicin de no decrecimiento, se puede hallar una
gramtica equivalente con las producciones sensibles al contexto. Esta segunda propiedad
combinada con la primera hace que se pueda intercambiar la caracterstica de no decre-
cimiento con la definicin.
Ejemplo 7.2.3.3
S aSBC
S aBC
CB BC
bB bb
bC bc
cC cc
aB ab
La gramtica anterior no es de tipo 1 segn la definicin dada, ya que la regla
CB BC no respeta el contexto. Sin embargo puede apreciarse que todas las reglas de
esta gramtica son no decrecientes, por lo tanto es posible encontrar una gramtica equi-
valente que genere el mismo lenguaje. Se puede sustituir la regla CB BC por :
CB XB
XB XY
XY BY
BY BC
Puede observarse que ambas gramticas son equivalentes y que generan el lenguaje :
L(G) = { an bn cn / n 1 }
- 21 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
P {N ({VN} {VT})+}
Ejemplo 7.3.1
S aB A bAA
S bA B b
A a B bS
A aS B aBB
Ejemplo 7.3.2
Ejemplo 7.3.3
S aS
S aA
A bA
A b
A aB
A a
Ejemplo 7.4.1
S aS
S aA
A bA
A b
Segn las definiciones anteriores la cadena vacia no puede aparecer en ningn len-
guaje de tipo 1, 2 o 3. Supongamos que deseamos aadir la cadena vacia a un lenguaje.
Se pretende crear un nuevo lenguaje L, a partir del lenguaje L de tal forma que:
L = L {}
Una forma de hacer esto es aadir la siguiente regla de produccin S a las reglas
de la gramtica que describe L. Pero se haba impuesto a las reglas de las gramticas de
- 23 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
Teorema 7.5.1
Corolario 7.5.2
Corolario 7.5.3
Los cuatro tipos de gramticas estudiados anteriormente (tipo 0, tipo 1, tipo 2, y tipo
3), cada una de ellas tiene restricciones ms fuertes que las anteriores. Las gramticas de
tipo 0, contienen a todas las dems. Las de tipo 1 contienen a las de tipo 2 y tipo 3. Y por
ltimo las de tipo 2 contienen a las de tipo 3. Es decir una gramtica de tipo 3 es de tipo
2, tipo 1 y tipo 0. Por lo tanto se define una jerarqua de gramticas respecto de la relacin
de inclusin, que se puede representar grficamente mediante el diagrama de la figura 1.
- 24 -
JERARQUA DE LAS GRAMTICAS
- 25 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
Si los lenguajes generados por los distintos tipos de gramticas se se relacionan entre
s con respecto a la relacin de inclusin se obtiene :
Segn lo visto anteriormente existe una correspondencia entre las gramticas y los
lenguajes de tal forma que se genera una jerarqua de lenguajes anloga a la mostrada para
las gramticas, que se puede representar grficamente mediante el diagrama de la figura
2.
- 26 -
CORRESPONDENCIA ENTRE GRAMTICAS Y LENGUAJES
CORRESPONDENCIA ENTRE
LOS LENGUAJES Y LAS GRAMATICAS
GRAMATICAS
LENGUAJES
- 27 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
L1 L2 = {x/x L1 x L2}
- 28 -
EXPRESIONES REGULARES
L + = {L} {LL} {LLL} = L n
n =1
Las expresiones regulares describen los lenguajes regulares, luego sus operaciones
corresponderan a las indicadas para los lenguajes regulares.
{ | } = {} {}
- 29 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
9.4 Teorema
9.5 Propiedades
()=()
| = ( | )
= =
- 30 -
EXPRESIONES REGULARES
d.1) ( | )* = (* | *) = (**)
* *
d.2) ( | )* = (* | ) = *
d.3) * | = *
d.4) * =
Ejemplo 9.6
ab
aab
aaaab
abbbb
abb
aaaab
El lenguaje que se describe es L={cadenas que comienzan por una a y continuan con
varias o ninguna a, y siguen con una b y continuan con varias o ninguna b}
Ejemplo 9.7
Ejemplo 9.8
Ejemplo 9.9
- 31 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
Ejemplo 9.10
Dada la expresin regular (a | b)* , el lenguaje que denota es el que se puede formar
con todas las cadenas compuestas por a y b incluida la cadena vacia. Algunos ejemplos
de sentencias de este lenguaje son :
aaa
bbb
aba
abaaa
abbaa
Ejemplo 9.11
3 23
13 223
123 113
11113 121211223
221113 111212213
Ejemplo 9.12
Ejemplo 9.13
- 32 -
EXPRESIONES REGULARES
Ejemplo 9.14
Ejemplo 9.15
(a | b | c | | z) (a | b | c | d | | z | 0 | 1 | | 9)*
Ejemplo 9.16
Dar una expresin regular para los nmeros reales sin exponente del lenguaje Pascal
estndar.
Solucin :
( | + | ) (< dgito >< dgito >* < dgito >*< dgito >)
Ejemplo 9.17
- 33 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
El autmata recibe los smbolos de entrada, uno detrs de otro, es decir secuencial-
mente. El smbolo de salida que en un instante determinado produce un autmata, no slo
depende del ltimo smbolo recibido a la entrada, sino de toda la secuencia o cadena, que
ha recibido hasta ese instante.
- 34 -
AUTMATAS
cuando reciba a su entrada una determinada cadena de smbolos indica si dicha cadena
pertenece o no al lenguaje. Tambin se mostrar como existe un tipo de autmata para
reconocer cada uno de los tipos de lenguajes generados por las correspondientes gramticas.
f es la funcin de transicin o funcin del estado siguiente, y para un par del conjunto
E Q devuelve un estado perteneciente al conjunto Q. E Q es el conjunto producto
cartesiano de E por Q.
- Tabla de transiciones
- Diagrama de Moore
Las funciones f y g pueden representarse mediante una tabla, con tantas filas como
estados y tantas columnas como entradas. As por ejemplo se puede representar el autmata
A = ( E, S, Q, f, g ) donde E = {a,b}, S = {0,1}, Q = {q1, q2, q3} y las funciones f y g se
pueden representar por :
- 35 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
f a b g a b
q1 q1 q2 q1 0 1
q2 q3 q2 q2 0 0
q3 q3 q1 q3 1 0
As se tiene que f(a , q1) = q1 ; g(a, q1) = 0 ; o tambin f(a, q2) = q3 ; y g(a, q3) = 1 .
f/g a b
q1 q1/0 q2/1
q2 q3/0 q2/0
q3 q3/1 q1/0
Los diagramas de Moore son otra forma de representar las funciones de transicin y
salida de un autmata.
/s
q i
q
j
- 36 -
AUTMATAS
a/0
q
1
b/1 b/0
q q
2 3
a/0 a/1
b/0
f : {E {}} Q Q
g : {E {}} Q S
La ampliacin del dominio f no plantea ningn problema, pues se puede convenir
que f( ,q)=q, es decir si no hay entrada, no se cambia de estado.
- 37 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
Cuando esto ocurre para todo q Q, se puede definir una aplicacin inyectiva :
h:QS
g=hf
En una mquina de Mealy las salidas estn asociadas a las transiciones, mientras que
en una mquina de Moore las salidas estn asociadas a los estados, o, lo que es lo mismo,
todas las transiciones que conducen a un mismo estado tienen asociada la misma salida.
Tambin se puede decir que una mquina de Mealy, en el instante de efectuar una transicin
necesita conocer una entrada e E, ya que en general g( ,q) no est definida. Sin embargo
en las mquinas de Moore la entrada puede ser .
Puesto que por definicin toda mquina de Moore es una mquina de Mealy que
cumple la condicin de que a cada estado se le puede asociar una salida y slo una, parece
en principio que las mquinas de Moore son un subconjunto de las mquinasde Mealy.
Sin embargo, se va a demostrar que, dada una mquina de Mealy, siempre se puede
encontrar una mquina de Moore equivalente, normalmente, a costa de aumentar el nmero
de estados.
= {qs / (q Q
Q y e E) tales que f(e, q) = q y g(e, q) = s }
- 38 -
AUTMATAS
tal que g (e, qs) = h ( f (e, qs)), por lo tanto A es una mquina de Moore.
En lo sucesivo siempre que slo se tratarn autmatas que son mquinas de Moore.
Ejemplo 10.3.1
g=hf a b
- 39 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
a b
a
a
0
q1 q0 q
3 3 2
b
a
0 q1 b
q 2
1
Sea un autmata A=(E,S,Q,f,g), se dice que un estado qj es accesible desde otro estado
qi, si existe una entrada e E* tal que f(qi,e)=qj.
Sea un autmata A=(E,S,Q,f,g), se dice que es conexo si todos los estados de Q son
accesibles desde el estado inicial q0.
- 40 -
JERARQUA DE LOS AUTMATAS
a) Dada una gramtica G Qu estructura deber tener una mquina, M, tal que el
lenguaje reconocido por la mquina M, es igual al lenguaje generado por G?
b) Dada una mquina M Cul ser la gramtica G, tal que el lenguaje generado por
G, es igual al lenguaje reconocido por M?
- 41 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
GRAMATICAS
LENGUAJES
- 42 -
MQUINAS DE TURING
a) Cambio de estado
b) Imprime un smbolo en la cinta reemplazando el smbolo ledo.
c) Se mueve la cabeza de la cinta a la izda, a la derecha o se para.
MT = (Q, , , , q0, B, F)
CELDA
CINTA
1 1 0 0 0 0 1 1 1 1 1 1 0 1 1
donde :
- 43 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
- Q = {conjunto de estados}
- = {conjunto de smbolos permitidos en la cinta}
- B es el smbolo blanco.
- es el subconjunto de smbolos de entrada no incluyendo el blanco.
- : Q Q {I, D, S} donde es la funcin del siguiente movi-
miento, I significa movimiento a izquierda, D significa movimiento a derecha,
y S parada (stop).
- q0 Q es el estado inicial.
- F Q es el subconjunto de estados finales
El lenguaje aceptado o reconocido por una mquina de Turing, que denotaremos por
L(MT), es el conjunto de palabras formadas con el alfabeto * , que hace que la mquina
de Turing se pare al alcanzar un estado final.
12.1 Teorema
Para toda gramtica de tipo 0, existe una mquina de Turing que reconoce el lenguaje
generado por dicha gramtica.
12.2 Teorema
Para toda mquina de Turing, existe una gramtica de tipo 0 que genera un lenguaje
igual al reconocido por la mquina de Turing.
- 44 -
MQUINAS DE TURING
12.3 Corolario
Ejemplo 12.4
0 1 X Y B
q0 q1,X,D - - q3,Y,D -
q3 - - - q3,Y,D q4,B,D
q4 S S S S S
- 45 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
Los guiones (-) en la tabla significan estados imposibles. La mquina primero escribe,
luego cambia de estado y por ltimo se mueve. Utilizando la mquina anterior se puede
reconocer la cadena 0011 :
- 46 -
AUTMATAS LINEALES ACOTADOS
CELDA
CINTA
# 1 1 0 0 0 0 1 1 1 0 1 1 $
- 47 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
Ntese que las marcas fin de cinta y comienzo de cinta no son consideradas como
parte de la sentencia a reconocer. Un autmata lineal acotado no puede moverse fuera de
la cadena de entrada.
13.1 Teorema
L(G1)=L(RALA)
13.2 Teorema
L(RALA)=L(G1)
13.3 Corolario
De los dos teoremas anteriores se deduce que existe una correspondencia entre las
gramticas de tipo 1, los lenguajes de tipo 1, y los autmatas lineales acotados.
- 48 -
AUTMATAS DE PILA
Las operaciones elementales, que se pueden realizar con un AP, son de dos tipos :
En cualquier caso, si se vacia la pila (es decir se extrae todas las Z) el autmata se
para.
Un autmata de pila se puede representar intuitivamente segn el esquema de la
figura 9.
- 49 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
MOVIMIENTO DE LA CINTA
CINTA
1 1 0 0 0 0 1
CONTROL DE ESTADOS
PILA
donde :
: Q { {}} Q *
- q0 es el estado inicial, y cumple q0 Q.
- Z0 es el smbolo inicial que contine la pila antes de comenzar, evidentemente
Z0 .
- F es el conjunto de estados finales, evidentemente F Q.
- 50 -
AUTMATAS DE PILA
(q, W, )
donde :
donde la funcin de transicin para esta entrada toma el valor (q,aW,Z) (q, ) , siendo
q Q , a {} , W * , Z , y * .
MOVIMIENTO DE LA CINTA
CINTA
a W
CONTROL DE ESTADOS
PILA
- 51 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
MOVIMIENTO DE LA CINTA
CINTA
a W
CONTROL DE ESTADOS
PILA
14.1.1 Teorema
Para toda gramtica libre de contexto G2, existe un reconocedor constituido por un
autmata de pila RAP, tal que el lenguaje generado por la gramtica L(G2) es reconocido
por el autmata RAP.
L(G2)=L(RAP)
14.1.2 Teorema
Para todo reconocedor constituido por un autmata de pila RAP, existe una gramtica
libre de contexto G2, tal que el lenguaje reconocido por el autmata es igual al generado
por la gramtica.
L(RAP)=L(G2)
14.1.3 Corolario
Ejemplo 14.1.4
donde se define :
(q1, 0, 0) (q1, 0, 0)
(q1, 1, 0) (q2, )
(q2, 1, 0) (q2, )
- 53 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
(q2, , Z) (q0, )
(q0, , Z) (q0, )
El autmata va copiando todos los 0 de la cinta en la pila, y cuando va encontrando
los 1, va sacando los ceros de la pila. Puede observarse que la cadena vacia tambin
pertenece al lenguaje.
Tambin se puede definir por la tabla, donde los guiones (-) representan estados
imposibles.
0 1
q2,0 - q2, -
q2,Z - - q0,
Por ejemplo para reconocer la sentencia 0011 del lenguaje, se realizan las siguientes
transiciones :
(q0,00i11i,Z) (q0,,)
Dada una gramtica de tipo 2 se puede construir un autmata de pila (por lo general
no determinista) que reconozca el mismo lenguaje que genera la gramtica.
- 54 -
AUTMATAS DE PILA
Saca x de la pila
Avanza el smbolo x de la cinta
No cambia de estado
No avanza la cinta
Saca A de la pila
Mete en la pila
No cambia de estado
- 55 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
Ejemplo 14.2.1
E E +T |T
T T*F | F
F (E) | a
Q = {q}
= {a , +, *, (, )}
= {a, +, *, (, ), E, T, F}
q0 = q
z0 = E
F = {}
a) Smbolos terminales
(1) (q , a, a) (q, )
(2) (q, +, +) (q , )
(3) (q, *, *) (q , )
(5) (q , ), ) ) (q, )
b) Reglas de produccin
(6) (q , , E) (q, T)
(8) (q, , T) (q , F)
- 56 -
AUTMATAS DE PILA
(11) (q, , F) (q , a)
Se puede observar que si se desea reconocer una cadena por ejemplo a+a se producen
retrocesos, debido a que el autmata no es determinista. As se pone la cadena a reconocer
a+a en la cinta, el autmata en el estado inicial q, y la pila con su valor inicial E. Las reglas
de transicin entre configuraciones estn numeradas y el autmata aplica en primer lugar
la regla con nmero ms bajo.
(6) (8) (10)
(q , a + a , E) (q, a + a, T) (a, a + a , F) (a , a + a , (E) )
Se alcanza una configuracin imposible la pila est vacia pero queda una parte de la
cadena en la cinta. Se tiene que retroceder hasta aplicar otra regla alternativa. Se retrocede
hasta donde se aplic la regla (8) y ahora se utiliza la regla (9).
(9) (8) (10)
(q , a + a, T) (q, a + a, T*F) (q, a + a, F*F) (q , a + a, (E)*F)
(11) (1)
(q , a , F) (q, a , a) (q, , )
Ejercicio 14.2.2
S x
S (SR
R , SR
R )
Determinar el lenguaje que genera y construir el autmata que lo reconoce. Poner
un ejemplo de reconocimiento de una cadena del lenguaje.
- 58 -
AUTMATAS FINITOS
1 1 0 0 0 0 1 1 1 1 1 1 0 1 1
CONTROL DE ESTADOS
q1 Q , es el estado inicial
- 59 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
15.2.1 Teorema
Para toda gramtica regular, G3, existe un autmata finito, AF, tal que el lenguaje
reconocido por el autmata finito es igual al lenguaje generado por la gramtica.
L(AF) = L(G3)
15.2.2 Teorema
Para todo autmata finito, AF, existe una gramtica regular, G3, tal que el lenguaje
generado por la gramtica es igual al lenguaje reconocido por el autmata finito
L(G3) = L(AF)
15.2.3 Corolario
Segn el teorema 15.2.1, se tiene que {L(G3)} {L(AF)} y por el teorema 15.2.2,
{L(AF) {L(G3)} , luego {Lregulares} = {L(AF)} = {L(G3)}
- 60 -
AUTMATAS FINITOS
q q
1 2
Los nodos que representan los estados finales, suelen marcarse con un doble crculo, y el
estado inicial tambin se marca con una flecha, encima de la cual se coloca la palabra
INICIO.
Ejemplo 15.2.4
Sea el autmata finito A1 = (E, Q, f, q1, F) donde E = {a, b} {} ; Q = {q1, q2, q3, q4}
y la funcin f viene dada por la tabla siguiente y el conjunto de estados finales es F={q3}
f a b
q1 q2 q4
q2 q2 q3
q3 q4 q3
q4 q4 q4
- 61 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
a b
INICIO a b
q q2 q
1 3
b
a
q
4
a,b
El lenguaje generado se obtiene partiendo del estado inicial y recorriendo todos los
caminos posibles para alcanzar el estado final. As se obtiene que este autmata reconoce
el lenguaje :
L(A1) = {a n b m /n 1m 1}
- 62 -
AUTMATAS FINITOS
Ejemplo 15.2.5
Sea el autmata finito A2 = (E, Q, f, q1, F) donde E = {0,1} , Q = {q1, q2, q3, q4} y f se
define por la tabla siguiente, y F={q2}.
f 0 1
q1 q4 q2
q2 q3 q4
q3 q4 q2
q4 q4 q4
0
INICIO 1
q q q
1 2 3
1
1
0 0
q
4
0,1
- 63 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
Ejemplo 15.2.6
Sea el autmata finito A3 = ( E, Q, f, q1, F) donde E = {a,b,c}, Q = {q1, q2, q3, q4, q5},
f se representa por la tabla siguiente y F={q2, q4}.
f a b c
q1 q2 q3 q5
q2 q5 q5 q5
q3 q5 q5 q4
q4 q5 q5 q5
q5 q5 q5 q5
q2
a a,b,c
a,b,c
INICIO
c
q q
1 5
b a,b
a,b,c
q q4
3 c
- 64 -
AUTMATAS FINITOS
Ejemplo 15.2.7
Sea el autmata A4 = (E = {1,2,3}, Q = {q1, q2, q3}, f, q1, F = {q2}), donde f viene dada
por la tabla siguiente.
f 1 2 3
q1 q1 q1 q2
q2 q3 q3 q3
q3 q3 q3 q3
(n ) (n ) (n ) (n )
L(A4) = 1 1 2 2 1 3 2 4 3/n1, n2, 0
1,2 1,2,3
INICIO 3 1,2,3
q q2 q
1 3
Ejemplo 15.2.8
- 65 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
letra, dgito
INICIO letra $
q q q
0 1 2
f <letra> <dgito> $
q0 q1 - -
q1 q1 q1 q2
q2 - - -
- 66 -
AUTMATAS FINITOS
Ejemplo 15.3.1.1
f a b
q1 {q2,q3}
q2 {q2,q4}
q3 q3 q4
q4 q4
a(b *b | a *b)a *
o tambin
a(b * | a *)ba *
- 67 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
q
2
a b
b a
INICIO
q q4
1
b
a
q
3
Demostracin :
- 68 -
AUTMATAS FINITOS
q1=[q1]
F={q Q/q f q y q f F }
Es decir, para que q sea estado final basta que uno o ms de los estados de Q que lo
componen sea final.
Con esto se ha construido un autmata finito determinista, ahora hace falta demostrar
que reconocen el mismo lenguaje, para ello bastar comprobar que, para todo x E *,
f(x,q1) F si y solo si f(x,q1) contiene un estado (o varios) qf F, y teniendo en cuenta
la definicin de F esto ser evidentemente cierto si se demuestra que :
Tal demostracin puede hacerse por induccin sobre la longitud de x : para longitud
de x nula, x = , es inmediato puesto que f(,q1)=q1=[q1], y f(,q1)={q1}. Supngase
que es cierto para longitud de x <= 1; entonces para e E se tiene que
f(xe,q1)=f(x,q1)
Por tanto
- 69 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
Ejemplo 15.3.3.1
Q={,[q1],[q2],[q3],[q4],[q1q2],...,[q1q2q3q4]}
q1=[q1]
F={[q4],[q1q4],[q2q4],[q3q4],[q1q2q4],...,[q1q2q3q4]}
Ahora bien, en un AF los estados que no son accesibles desde el inicial pueden
eliminarse, as se eliminan los marcados en la tabla con flechas:
[q2], [q1q2], [q1q3], [q1q4], [q1q2q3], [q1q2q4], [q1q3q4], y [q1q2q3q4] por no aparecer
dentro de la tabla.
- 70 -
AUTMATAS FINITOS
Evidentemente [q1] nunca puede eliminarse como estado, por ser el estado inicial.
f a b
[q1] [q2q3]
[q3] [q3] [q4]
[q4] [q4]
[q2q3] [q3] [q2q4]
[q2q4] [q4] [q2q4]
El estado vacio [] no puede eliminarse en este caso, pues es accesible desde [q1] y
[q4].
De los 16 estados posibles slo han quedado 6, con los que se construye el diagrama
de Moore de la figura 20.
- 71 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
[q q ]
2 3
a
a
b
INICIO
[q ] [q q ] a [q ]
1 b 2 4 3
a
b b
a
a,b
b [q ]
4
= abb *( | aa *) | aaa *b a *
= a (b * | aa *)ba *
= a (b * | a *)ba *
La ltima igualdad se ha obtenido teniendo en cuenta que:
b * | aa * = b * | | aa * = b * | a *
- 72 -
AUTMATAS FINITOS
E=VT
q1=S
F={qf}
A B
A q
f
- 73 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
Ejemplo 15.4.1
G = (VN={A,S}, VT={a,b}, S, P)
S aS
S aA
A bA
A b
Obtener un AFND y otro AFD que reconozcan el mismo lenguaje que esta gramtica
genera.
Solucin : Se define el AFND a partir de la gramtica como AFND = (E, Q, f, q1, F) donde
E={a,b}, Q={A,S,X}, q1=S, F={X}, y f viene dada por la tabla siguiente :
f a b
S {S,A} -
A - {A,X}
X - -
a b
INICIO a b
S A X
a *a b *b = aa *bb * = a +b +
El AFD se define como AFD=(E, Q,f, q1, F) donde f viene dado por la tabla :
- 74 -
AUTMATAS FINITOS
f a b
[S] [S,A]
[A] [A,X]
[X]
[S,A] [S,A] [A,X]
[S,X] [S,A]
[A,X] [A,X]
[S,A,X] [A,X] [A,X]
aa *bb * = a +b +
- 75 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
[S,A]
a b
a
INICIO
[S] b [A,X]
a,b
b a
[S,A]
a b
a
INICIO
[S] b [A,X]
Dada una expresin regular existe un autmata finito capaz de reconocer el lenguaje
que sta define. Recprocamente, dado un autmata finito, se puede expresar mediante una
expresin regular el lenguaje que reconoce.
INICIO
q q
f
INICIO
q q
f
INICIO a
q
f
- 77 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
INICIO
q q a
f
q
1
a
INICIO
q q
f
b
q
2
a ,b
INICIO
q q
f
a,b
INICIO
q
f
- 78 -
AUTMATAS FINITOS
b
a
INICIO
q q
f
b
a c
INICIO
q
f q1 q
2
Supongamos que N(s) y N(t) son AFND para las expresiones regulares s y t.
a) Para la expresin regular s|t se construye el AFND N(s|t) que se muestra en la figura
34.
qj N(s) qk
INICIO
q qf
ql N(t) qm
b) Para la expresin regular st se construye el AFND N(st) que se muestra en la figura 35.
- 79 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
INICIO
q1 N(s) q2 N(t) q3
c) Para la expresin regular s* se construye el AFND N(s*) que se muestra en la figura 36.
INICIO
q1 q2 N(s) q3 qf
Ejemplo 15.5.2.1
r17
r12
r16
r11
r7 ( r15 )
r5 r6 r10
r13 | r14
r4 *
0 1
( r3 )
r1 | r2
0 1
- 80 -
AUTMATAS FINITOS
0
2 3
INICIO 0
0 1 6 7 8
1
4 5
2
0
3 0 0
9 10 14 15
INICIO 0
0 1 6 7 8
13
18
1
4 5
11 12 16 17
1 1
Algoritmo 15.6.1
- 81 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
1. Se construye una particin inicial del conjunto de estados Q en dos grupos : los
estados finales F y los estados no finales Q-F.
BEGIN
Particin de G en subgrupos tales que dos estados qi y qj de G estn en el
mismo subgrupo si, y slo si, para todos los smbolos de entrada e, los
estados qi y qj tienen transiciones en e hacia estados del mismo grupo de
;
IF nueva= THEN
BEGIN
final:=;
GOTO 4; /* Ir al paso 4 */
END
ELSE
- 82 -
AUTMATAS FINITOS
BEGIN
:=nueva;
GOTO 2; /* Volver al paso 2 */
END
Ejemplo 15.6.2
f a b
q1 q2 q3
q2 q2 q4
q3 q2 q3
q4 q2 q5
q5 q2 q3
Solucin
- 83 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
(1).La particin inicial consta de dos grupos : (q5) conjunto de estados finales, y
(q1q2q3q4) los estados no finales.
(4). Se escoge q1 como representante del grupo (q1q3), y q2, q4 y q5 como representantes
de los grupos de un slo estado.
f a b
q1 q2 q1
q2 q2 q4
q4 q2 q5
q5 q2 q1
- 84 -
AUTMATAS FINITOS
- 85 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
Ejercicio 16.1
S 0A
A 0A
A 1S
A 0
Determinar :
a) De qu tipo es?
b) Expresar de algn modo el lenguaje que genera.
Solucin :
L(G) = { Cadena que empieza por 0 y termina con dos 0. Entre ellos puede haber un
n indefinido de 0 y 1, con la restriccin de que no puede haber dos 1 seguidos}
Ejercicio 16.2
Definir una gramtica que permita generar todos los nmeros racionales escritos en
decimal con el formato :
- 86 -
EJERCICIOS RESUELTOS
<dgito>
+,- q
1
INICIO <dgito>
q <dgito>
q q4
0 3
.
<dgito>
q
2
<dgito>
Ejercicio 16.3
- 87 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
Ejercicio 16.4
S aB
B bB
Ba
Ejercicio 16.5
Escribir una gramtica libre de contexto para un nmero real del lenguaje C++, y
escribir las derivaciones, para las siguientes sentencias:
Solucin :
b) -61.
c) -72.25
< Tipo REAL > < signo > < num > < fraccin > < exponente >
< signo > < num > < fraccin >
- < num > < fraccin >
- < dgito > < num > < fraccin >
- 7 < num > <fraccin >
- 7 < dgito > < fraccin >
- 72 < fraccin >
- 72. < num >
- 72. < dgito > < num >
- 72.2 < num >
- 72.2 < dgito >
- 72.25
e) 14.25E+02
< Tipo REAL > < signo > < num > < fraccin > < exponente >
< num > < fraccin > < exponente >
< dgito > < num > < fraccin > < exponente >
< num > < fraccin > < exponente >
1 < dgito > < fraccin > < exponente >
< fraccin > < exponente >
14. < num > < exponente >
14. < dgito > < num > < exponente >
14.2 < num > < exponente >
14.25 < exponente >
14.25 < exp >
14.25E < signo > < num >
14.25E+ < num >
14.25E+ < dgito > < num >
14.25E+0 < num >
14.25E+0 < dgito >
14.25E+02
- 89 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
f) -25.2E-23
< Tipo REAL > < signo > < num > < fraccin > < exponente >
- < num > < fraccin > < exponente >
- < dgito > < num > < fraccin > < exponente >
-2 < num > < fraccin > < exponente >
-2 < dgito > < fraccin > < exponente >
-25 < fraccin > < exponente >
-25. < num > < exponente >
-25. < dgito > < exponente >
-25.2 < exponente >
-25.2 < exp >
-25.2E < signo > < num >
-25.2E- < num >
-25.2E- < dgito > < num >
-25.2E-2 < num >
-25.2E-2 < dgito >
-25.2E-23
Ejercicio 16.6
Solucin :
< sentencia FORMAT > < etiqueta > < blanco > {< blanco >} FORMAT
{<blanco>} ({< blanco >} < argumento > {< blanco >})
< etiqueta > < dgito > < nmero1 >
< nmero1 > < dgito > < nmero2 > | < vacio >
< nmero2 > < dgito > < nmero3 > | < vacio >
- 90 -
EJERCICIOS RESUELTOS
< nmero3 > < dgito > < nmero4 > | < vacio >
< nmero4 > < dgito > | < vacio >
< dgito > 0 | 1 | 2 | .. | 9
< blanco > b
< argumentos > < especificacin > < resto argumentos >
< resto argumentos > , < especificacin > < resto argumentos >
< resto argumentos > <diagonal> <especificacin> <resto argumentos>
< resto argumentos > < vacio >
< diagonal > / < otra diagonal >
< otra diagonal > < diagonal >
< otra diagonal > < vacio >
< especificacin > < nmero > (< argumentos >)
< especificacin > < formato >
< formato > I < nmero real >
< formato > I < nmero >
< formato > Q
< formato > A < nmero >
< formato > A
< formato > R < nmero >
< formato > L < nmero >
< formato > K < nmero >
< formato > F < nmero real >
< formato > Z < nmero >
< formato > E < nmero real >
< formato > E < nmero real > E.
< formato > D < nmero real >
< formato > D < nmero real > E.
< formato > G < nmero real >
< formato > G < nmero real > E.
< formato > T < nmero >
< formato > TL < nmero >
< formato > TR < nmero >
< formato > < nmero > X
< formato > < nmero > P
< formato > S
- 91 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
- 92 -
EJERCICIOS PROPUESTOS
Ejercicio 17.1
Construir una gramtica que describa el lenguaje constituido por los nmeros
romanos. Disear un autmata que dada una cadena de entrada indique si es un nmero
romano o no lo es.
Ejercicio 17.2
Construir una gramtica que describa el lenguaje constituido por todas las cadenas
de a y b, que no contienen la subcadena abb. Se entiende por subcadena de una cadena s
como una cadena que se obtiene suprimiendo cero o ms smbolos desde la derecha o la
izquierda de la cadena s. Ejemplo : ver es una subcadena de conversin. Sin embargo
cosin no es una subcadena de conversin.
Ejercicio 17.3
Construir una gramtica que describa el lenguaje constituido por todas las cadenas
de a y b, que no contienen la subsecuencia abb. Se entiende por subsecuencia de una cadena
s como una cadena que se obtiene suprimiendo cero o ms smbolos no necesariamente
contiguos de la cadena s. Ejemplo : ovesi es una subsecuencia conversin.
Ejercicio 17.4
Construir un AFD con mnimo de estados para que reconozca el lenguaje descrito
por la expresin regular (0|1)*0(0|1)(0|1).
Ejercicio 17.5
Ejercicio 17.6
- 93 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
Ejercicio 17.7
Ejercicio 17.8
Ejercicio 17.9
Ejercicio 17.10
Disear una gramtica que genere el lenguaje formado por las expresiones con o sin
parntesis, debiendo estar siempre los parntesis emparejados. Los smbolos terminales
son VT={(,e,)}. Ejemplos de instrucciones del lenguaje : e, ee, (e)(e), (((e))), ((e)(e)), y
(eee). Construir un autmata que reconozca dicho lenguaje.
- 94 -
EJERCICIOS DE PROGRAMACIN
Ejercicio 18.1
Ejercicio 18.2
Ejercicio 18.3
Ejercicio 18.4
Ejercicio 18.5
Ejercicio 18.6
Escribir un programa que dado un autmata finito determine otro equivalente con
un nmero de estados mnimo.
- 95 -
LENGUAJES, GRAMTICAS Y AUTOMATAS
BIBLIOGRAFA
(1) Aho A.V. y Ullman J.D. (1973b). The Theory of Parsing, Translation and Com-
piling. Vol I: Parsing. Prentice-Hall.
(2) Aho A.V. y Ullman J.D. (1973a). The Theory of Parsing, Translation and Com-
piling. Vol II: Compiling. Prentice-Hall.
(3) Aho A.V., Sethi R. y Ullman J.D (1986). Compilers : Principles, Techniques, and
Tools. Addison-Wesley. Edicin en Castellano (1990) Compiladores : Principios,
Tcnicas y Herramientas. Addison-Wesley Iberoamericana.
(6) Barber F., Botti V.J. y Prez T.A. (1986). Introduccin a los traductores, compi-
ladores e intrpretes. Dto. de Sistemas Informticos y Computacin.
Universidad Politcnica de Valencia.
(7) Chomsky N. (1956). Three models for the description of language. IRE Trans. on
Information Theory 2:3, pp 113-124.
(11) Chomsky N, y Miller G.A. (1958). Finite state languages. Information and Control
1:2, pp 91-112.
(12) Chomsky N., y M.P. Schutzenberger (1963). The algebraic theory of context free
languages. Computer Programming and Formal Systems, pp. 118-161, North
Holland.
- 96 -
BIBLIOGRAFA
(16) Hopcroft J.E. y Ullman J.D. (1979). Introduction to automata theory, languages
and computation. Addison-Wesley.
(17) Hopcroft J.E. (1984). Mquinas de Turing. Investigacin y Ciencia n 94, pp 8-19,
Julio 1984.
(18) Isasi P., Martnez P., Borrajo D. Lenguajes, Gramticas y Autmatas. Un enfoque
prctico. Addison-Wesley (1997)
(20) Minsky M.L. (1967). Computation: Finite and Infinite Machines. Prentice Hall,
Englewood Cliffs.
(23) Shannon C.E. (1949). The synthesis of two-terminal switching circuits. Bell System
Tech. J., vol. 28, pp. 59-98.
(24) Shannon C.E. (1954). A symbolic analysis of relay and switching circuits. Van
Nostrand.
(25) Shannon C.E. (1956). A universal Turing machine with two internal states.
Automata Studies, pp. 129-153, Princeton Univ. Press.
- 97 -
LENGUAJES, GRAMTICAS Y AUTMATAS
ndice
AFD tipo 3, 23
autmata finito determinista, 66
transformacin AFND en AFD, 68 Instruccin, 13
AFND, 67
autmata finito no determinista, 67, 79 Lenguaje, 5, 14
Alfabeto, 3 vacio, 6
Autmata, 6, 34 lex, 79
Configuracin, 34
de pila, 49 Mquina de Mealy, 37
Estado, 34 Mquina de Moore, 39
finito, 59 Mquina de Turing, 43
lineal acotado, 47 Metalenguaje, 28
Reconocedor de lenguaje, 34 Minimizacin de estados
tipo 0, 43 AF en forma mnima, 81
tipo 1, 47 Moore
tipo 2, 49 diagrama, 62
tipo 3, 59
Transicin, 34 Palndromos, 5
Procesadores de lenguaje, 6
BNF, 8 Producciones, 8
C++, 88 Sentencia, 13
Cadena, 3, 10 Shannon, 2
concatenacin, 4 Smbolo, 3
vacia, 4 inicial, 7
Chomsky, 1, 18
Construccin de Thompson, 79, 80 Thompson
construccin de Thompson, 79
Derivacin Turing, 43
relacin de, 11
Diagrama de Moore, 62 Universo del discurso, 5
EBNF, 8 Vocabulario, 3, 7
Expresin regular no terminal, 7, 9
construccin de Thompson, 79 terminal, 7, 9
transformacin en AFND, 76
Expresiones regulares, 28
Operadores, 29
Gramtica, 6, 7
transformacin gramticas tipo 3 en
AFND, 73
Gramticas
con estructura de frase, 18
contexto libre, 22
lineales a la derecha, 23
no restringidas, 18
regulares, 23
sensibles al contexto, 18
tipo 0, 18
tipo 1, 18
tipo 2, 22
- 98 -