You are on page 1of 106

CUADERNO DIDCTICO N ...

LENGUAJES
GRAMTICAS
Y
AUTMATAS
Juan Manuel Cueva Lovelle
Catedrtico de E.U. de Lenguajes y Sistemas Informticos
Departamento de Informtica
Universidad de Oviedo
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
CAPTULO 3: DEFINICIN FORMAL DE GRAMTICA ................................................. 7
Ejemplo 3.1 .................................................................................................................................... 8
Ejemplo 3.2 .................................................................................................................................... 8
Ejemplo 3.3 .................................................................................................................................... 8
Ejemplo 3.4 .................................................................................................................................... 8
3.5 Notacin ................................................................................................................................... 9
3.5.1 Vocabulario terminal ........................................................................................................ 9
3.5.2 Vocabulario no terminal ................................................................................................... 9
3.5.3 Vocabulario ...................................................................................................................... 9
3.5.4 Cadenas terminales ........................................................................................................... 10
3.5.5 Cadenas ............................................................................................................................. 10
CAPTULO 4: RELACIONES ENTRE CADENAS ............................................................... 11
4.1 Relacion de derivacin directa ................................................................................................. 11
Ejemplo 4.1.1 ............................................................................................................................ 11
4.2 Relacion de derivacin ............................................................................................................. 11
Ejemplo 4.2.1 ............................................................................................................................ 12
CAPTULO 5: SENTENCIAS O INSTRUCCIONES ............................................................. 13
Ejemplo 5.1 .................................................................................................................................... 13
Ejemplo 5.2 .................................................................................................................................... 13
CAPTULO 6: DEFINICIN FORMAL DE LENGUAJE .................................................... 14
6.1 Propiedad ................................................................................................................................. 14
Ejemplo 6.2 .................................................................................................................................... 14
Ejemplo 6.3 .................................................................................................................................... 14
Ejemplo 6.4 .................................................................................................................................... 15
Ejemplo 6.5 .................................................................................................................................... 15
Ejemplo 6.6 .................................................................................................................................... 15
Ejemplo 6.7 .................................................................................................................................... 16
Ejemplo 6.8 .................................................................................................................................... 17
CAPTULO 7: JERARQUA DE LAS GRAMTICAS ......................................................... 18
7.1 Gramticas de tipo 0 ................................................................................................................ 18
7.1.1 Ejemplos ........................................................................................................................... 18
7.2 Gramticas de tipo 1 ................................................................................................................ 18
7.2.1 Ejemplos de gramticas de tipo 1 ..................................................................................... 18
Ejemplo 7.2.1.1 ..................................................................................................................... 19
Ejemplo 7.2.1.2 ..................................................................................................................... 19
Ejemplo 7.2.1.3 ..................................................................................................................... 19
7.2.2 Ejemplos de gramticas que No son de tipo 1 .................................................................. 19
- IV -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Ejemplo 7.2.2.1 ..................................................................................................................... 19
Ejemplo 7.2.2.2 ..................................................................................................................... 20
7.2.3 Propiedades de las gramticas de tipo 1 ........................................................................... 20
7.2.3.1 Propiedad de no decrecimiento ................................................................................. 20
7.2.3.2 Propiedad de sensibilidad al contexto ....................................................................... 21
Ejemplo 7.2.3.3 ..................................................................................................................... 21
7.3 Gramticas de tipo 2 ................................................................................................................ 22
Ejemplo 7.3.1 ............................................................................................................................. 22
Ejemplo 7.3.2 ............................................................................................................................. 22
Ejemplo 7.3.3 ............................................................................................................................. 22
7.4 Gramticas de tipo 3 ................................................................................................................ 23
Ejemplo 7.4.1 ............................................................................................................................. 23
7.5 Lenguajes con la cadena vacia ................................................................................................. 23
Teorema 7.5.1 ............................................................................................................................ 24
Corolario 7.5.2 ........................................................................................................................... 24
Corolario 7.5.3 ........................................................................................................................... 24
7.6 Relacin de inclusin ............................................................................................................... 24
CAPTULO 8: CORRESPONDENCIA ENTRE GRAMTICAS Y LENGUAJES ........... 26
CAPTULO 9: EXPRESIONES REGULARES ....................................................................... 28
9.1 Operaciones con los lenguajes regulares ................................................................................. 28
9.2 Operaciones con las expresiones regulares .............................................................................. 29
9.3 Precedencia de las operaciones ................................................................................................ 30
9.4 Teorema ................................................................................................................................... 30
9.5 Propiedades .............................................................................................................................. 30
Ejemplo 9.6 .................................................................................................................................... 31
Ejemplo 9.7 .................................................................................................................................... 31
Ejemplo 9.8 .................................................................................................................................... 31
Ejemplo 9.9 .................................................................................................................................... 31
Ejemplo 9.10 .................................................................................................................................. 32
Ejemplo 9.11 .................................................................................................................................. 32
Ejemplo 9.12 .................................................................................................................................. 32
Ejemplo 9.13 .................................................................................................................................. 32
Ejemplo 9.14 .................................................................................................................................. 33
Ejemplo 9.15 .................................................................................................................................. 33
Ejemplo 9.16 .................................................................................................................................. 33
Ejemplo 9.17 .................................................................................................................................. 33
CAPTULO 10: AUTMATAS ................................................................................................. 34
10.1 Definicin formal de autmata .............................................................................................. 35
10.2 Representacin de autmatas ................................................................................................. 35
10.2.1 Tabla de transiciones ...................................................................................................... 35
10. 2. 2 Di a gr a ma s de Moor e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
10. 3 M qui na s de Moor e y Me a l y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Ejemplo 10.3.1 ........................................................................................................................... 39
10.4 Estados accesibles de un autmata ........................................................................................ 40
10.5 Autmatas conexos ................................................................................................................ 40
10.6 Autmatas deterministas y no deterministas ......................................................................... 40
CAPTULO 11: JERARQUA DE LOS AUTMATAS ......................................................... 41
CAPTULO 12: MQUINAS DE TURING ............................................................................. 43
12.1 Teorema ................................................................................................................................. 44
12.2 Teorema ................................................................................................................................. 44
12.3 Corolario ................................................................................................................................ 45
Ejemplo 12.4 .................................................................................................................................. 45
CAPTULO 13: AUTMATAS LINEALES ACOTADOS .................................................... 47
13.1 Teorema ................................................................................................................................. 48
13.2 Teorema ................................................................................................................................. 48
13.3 Corolario ................................................................................................................................ 48
CAPTULO 14: AUTMATAS DE PILA ................................................................................ 49
14.1 Lenguaje reconocido por un autmata de pila ....................................................................... 52
- V -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
14.1.1 Teorema .......................................................................................................................... 53
14.1.2 Teorema .......................................................................................................................... 53
14.1.3 Corolario ......................................................................................................................... 53
Ejemplo 14.1.4 ........................................................................................................................... 53
14.2 Algoritmo de transformacin de una gramtica de tipo 2 en un autmata de pila ................ 54
Ejemplo 14.2.1 ........................................................................................................................... 56
Ejercicio 14.2.2 .......................................................................................................................... 58
CAPTULO 15: AUTMATAS FINITOS ................................................................................ 59
15.1 Definicin formal de autmata finito ..................................................................................... 59
15.2 Lenguaje reconocido por un autmata finito ......................................................................... 60
15.2.1 Teorema .......................................................................................................................... 60
15.2.2 Teorema .......................................................................................................................... 60
15.2.3 Corolario ......................................................................................................................... 60
Ejemplo 15.2.4 ........................................................................................................................... 61
Ejemplo 15.2.5 ........................................................................................................................... 63
Ejemplo 15.2.6 ........................................................................................................................... 64
Ejemplo 15.2.7 ........................................................................................................................... 65
Ejemplo 15.2.8 ........................................................................................................................... 65
15.3 Clasificacin de los autmatas finitos ................................................................................... 66
15.3.1 Autmatas finitos no deterministas ................................................................................ 67
Ejemplo 15.3.1.1 ................................................................................................................... 67
15.3.2 Autmatas finitos deterministas ..................................................................................... 68
15.3.3 Teorema sobre la transformacin de AFND en AFD ..................................................... 68
Ejemplo 15.3.3.1 ................................................................................................................... 70
15.4 Algoritmo de transformacin de una gramtica de tipo 3 en un autmata finito .................. 73
Ejemplo 15.4.1 ........................................................................................................................... 74
15.5 Transformacin de una expresin regular en un autmata finito .......................................... 76
15.5.1 Equivalencia entre expresiones regulares bsicas y autmatas finitos ........................... 77
15.5.1.1 Expresin regular ................................................................................................. 77
15.5.1.2 Expresin regular a ................................................................................................. 77
15.5.1.3 Expresin regular a ................................................................................................ 77
*
15.5.1.4 Expresin regular a ................................................................................................ 78
+
15.5.1.5 Expresin regular ab............................................................................................... 78
15.5.1.6 Expresin regular (a b)* .......................................................................................... 78
15.5.1.7 Expresin regular (ac b)* ........................................................................................ 79
15.5.1.8 Expresin regular (acd b)* ...................................................................................... 79
15.5.2 Construccin de Thompson ............................................................................................ 79
Ejemplo 15.5.2.1 .................................................................................................................. 80
15.6 Minimizacin de estados de un AFD ..................................................................................... 81
Algoritmo 15.6.1 ........................................................................................................................ 81
Ejemplo 15.6.2 ........................................................................................................................... 83
CAPTULO 16: EJERCICIOS RESUELTOS .......................................................................... 86
Ejercicio 16.1 ................................................................................................................................. 86
Ejercicio 16.2 ................................................................................................................................. 86
Ejercicio 16.3 ................................................................................................................................. 87
Ejercicio 16.4 ................................................................................................................................. 88
Ejercicio 16.5 ................................................................................................................................. 88
Ejercicio 16.6 ................................................................................................................................. 90
CAPTULO 17: EJERCICIOS PROPUESTOS ....................................................................... 93
Ejercicio 17.1 ................................................................................................................................. 93
Ejercicio 17.2 ................................................................................................................................. 93
Ejercicio 17.3 ................................................................................................................................. 93
Ejercicio 17.4 ................................................................................................................................. 93
Ejercicio 17.5 ................................................................................................................................. 93
Ejercicio 17.6 ................................................................................................................................. 93
Ejercicio 17.7 ................................................................................................................................. 94
Ejercicio 17.8 ................................................................................................................................. 94
Ejercicio 17.9 ................................................................................................................................. 94
Ejercicio 17.10 ............................................................................................................................... 94
CAPTULO 18: EJERCICIOS DE PROGRAMACIN ......................................................... 95
i
|
|
|
|
- VI -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Ejercicio 18.1 ................................................................................................................................. 95
Ejercicio 18.2 ................................................................................................................................. 95
Ejercicio 18.3 ................................................................................................................................. 95
Ejercicio 18.4 ................................................................................................................................. 95
Ejercicio 18.5 ................................................................................................................................. 95
Ejercicio 18.6 ................................................................................................................................. 95
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
Fi g. 33 : Di agr a ma de Moor e ( ac d| 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.
En este texto se presenta la Teora de Gramticas y Lenguajes Formales, como una
herramienta matemtica que permite abordar con rigor el diseo de lenguajes de progra-
macin.Adems sedesarrollanlos conceptosnecesarios paralaconstruccin deAutmatas
para el reconocimiento de lenguajes de programacin.
La Teora de los Lenguajes Formales tiene su origen en un campo aparentemente
bastante alejado de la Informtica: la Lingistica.
Los lingistas de la llamada escuela estructuralista americana haban elaborado por
los aos 50 algunas ideas informales acerca de la gramtica universal. Se entiende por
gramtica universal, una gramtica que caracteriza las propiedades generales de cualquier
lenguaje humano.
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).
En el campo de la Informtica, poco despus de las primeras publicaciones de
Chomsky, el concepto de Gramtica Formal adquiri gran importancia para la especifi-
cacin de lenguajes de programacin; concretamente, se defini con sus teoras la sintaxis
del lenguaje ALGOL 60 (con ligeras modificaciones sobre su versin primitiva), usndose
unagramtica libre decontexto. Ello condujo rpidamenteal diseo riguroso de algoritmos
de traduccin y compilacin.
Finalmente, y enlazando con el campo de la lingistica, la Teora de Lenguajes
Formales es de gran utilidad para el trabajo en otros campos de la Informtica por ejemplo
en Informtica Terica, Inteligencia Artificial, Procesamiento de lenguajes naturales
(comprensin, generacin, y traduccin) y Reconocimiento del Habla.
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
La Teora de los Autmatas proviene del campo de la Ingeniera Elctrica. El cien-
tficoestadounidenseClaudeElwood Shannon(1916-2001),public variostrabajos,donde
mostrabalas bases parala aplicacin de la Lgica Matemtica a los circuitoscombinatorios
y secuenciales. A lo largo de las dcadas siguientes, las ideas de Shannon se desarrollaron
considerablemente, dando lugar a la Teora de Autmatas (Shannon 1949; 1954 y 1956).
Los autmatas son sistemas que reciben informacin, la transforman y producen otra
informacin que se transmite al entorno.
La Teora de Autmatas tiene aplicacin en campos muy diversos :
- Lgica de los Circuitos Secuenciales
- Teora de Control de Sistemas
- Teora de la Comunicacin
- Arquitectura de Ordenadores
- Redes Conmutadoras y Codificadoras
- Teora de los Sistemas Evolutivos y Auto-reproductivos
- Reconocimiento de patrones
- Redes Neuronales
- Reconocimiento y procesado de lenguajes de programacin
- Traduccin de lenguajes
- Teora de Lenguajes Formales
En este texto la Teora de Autmatas se aplicar principalmente los tres ltimos
campos enumerados. Dentro del campo de los Traductores, Procesadores, Compiladores
e Intrpretes se aplicarn los lenguajes, gramticas y autmatas de tipo 3 para la cons-
truccin de analizadores lxicos, y los de tipo 2 para la construccin de analizadores
sintcticos.
- 2 -
DEFINICIONES
PREVIAS
CAPTULO 2: DEFINICIONES PREVIAS
En este captulo se introducen un conjunto de definiciones elementales necesarias
para los desarrollos tericos posteriores. Se definen de forma intuitiva, especificndose
algunas de ellas de manera formal en captulos posteriores.
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
a , b , c , # , 0 , 1 , + , * ,then, begin, end, else
2.2 Vocabulario o alfabeto
Es un conjunto finito de smbolos, no vacio. Para definir que un smbolo a pertenece
a un alfabeto V se utiliza la notacin a V. Los alfabetos se definen por enumeracin de
los smbolos que contienen, as por ejemplo se presentan a continuacin varios alfabetos.
Ejemplos 2.2.1
V =
{ A, B, C, D, E, F, G, H, . . . , X, Y,
Z}
1
V = { a, b , c, d, 0 , 1,2 , 3,4 , *,# , +
}
2
V =
{ 0,1 }
3
V = {if, then, begin, end, else, a, b, ; , =, > }
4
Tambin se puede definir las tablas ASCII y EBCDIC como los alfabetos de distintos
ordenadores.
2.3 Cadena
Una cadena es una secuencia finita de smbolos de un determinado alfabeto.
e
- 3 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Ejemplos 2.3.1
Se utilizan los vocabularios de los ejemplos del epgrafe 2.2.1.
abcb es una cadena del alfabeto V
2
a+2*b es una cadena del alfabeto V
2
000111 es una cadena del alfabeto V
3
if a>b then b=a; es una cadena del alfabeto V
4
2.4 Longitud de cadena
La longitud de una cadena es el nmero de smbolos que contiene. La notacin
empleada es la que se indica en los siguientes ejemplos.
Ejemplos 2.4.1
Se utilizan las cadenas de los ejemplos del epgrafe 2.3.1.
2.5 Cadena vaca
Existe una cadena denominada cadena vaca, que no tiene smbolos y se denota con
, entonces su longitud es :
2.6 Concatenacin de cadenas
Sean y dos cadenas cualesquiera, se denomina concatenacin de y a una
nueva cadena constituida por los smbolos de la cadena seguidos por los de la cadena
.
El elemento neutro de la concatenacin es :
| abcb |4
| a + 2*b |5
| 000111 |6
| if a > b then a = b ; |9
i
| | i 0
o | o |
o| o
|
i
= oi io
=o
- 4 -
DEFINICIONES
PREVIAS
2.7 Universo del discurso
Elconjunto detodas las cadenas que se pueden formar con lossmbolos 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 :
W(V) = { , a, aa, aaa, aaaa, . . . }
que contiene infinitas cadenas.
2.8 Lenguaje
Se denomina lenguaje sobre unalfabeto V a unsubconjunto del universo deldiscurso.
Tambin se puede definir como un conjunto de palabras de un determinado alfabeto.
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
i
i
- 5 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
100001
001100
1101011
0010100
2.9 Lenguaje vacio
Existe un lenguaje denominado el lenguaje vaco, que es un conjunto vaco y que se
denota por { }. El lenguaje vaco no debe confundirse con un lenguaje que contenga una
sola cadena, y que sta sea la cadena vacia, es decir { }, ya que el nmero de elementos
(cardinalidad) de estos dos conjuntos es diferente.
Cardinal ({ }) = 0
Cardinal ({ }) = 1
2.10 Gramtica
La gramtica es un ente formal para especificar, de una manera finita, el conjunto de
cadenas de smbolos que constituyen un lenguaje.
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.

i
- 6 -
DEFINICIN FORMAL DE
GRAMTICA
CAPTULO 3: DEFINICIN FORMAL DE
GRAMTICA
Una gramtica es una cudrupla :
G = ( VT , VN , S ,
P )
donde :
VT = {conjunto finito de smbolos terminales}
VN = {conjunto finito de smbolos no terminales}
Sesel smbolo inicial y pertenece a VN.
P = {conjunto de producciones o de reglas de derivacin}
Todaslascadenasdellenguaje definidopor lagramticaestn formados consmbolos
del vocabulario terminal VT. El vocabulario terminal se define por enumeracin de los
smbolos terminales.
El vocabulario no terminal VN es el conjunto de smbolos introducidos como ele-
mentos auxiliares para la definicin de la gramtica, y que no figuran en las sentencias del
lenguaje. El vocabulario no terminal se define por enumeracin de los smbolos no
terminales.
La interseccin entre el vocabulario terminal y no terminal es el conjunto vacio :
{VN} {VT} = { }
La unin entre el vocabulario terminal y no terminal es el vocabulario :
{VN} {VT} = {V}
En ocasiones es importante distinguir si un determinado vocabulario incluye o no la
cadena vacia, indicndose respectivamente con superndice + o superndice *, tal como se
muestra a continuacin :
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.

.
V
+
= V { } i
V
*
= V+{ } i
- 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
Sea la gramtica : G = ( VT, VN, S, P) donde VT = {a, b}, VN = {S}, y el conjunto
de producciones es :
Ejemplo 3.2
Sea la gramtica G = ( {a, b, c, d} , {S, A, B} , S, P) donde P son las producciones :
Ejemplo 3.3
Sea la gramtica G = (VN, VT, S, P) donde :
VN = { <nmero> , <dgito> }
VT = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
S = <nmero>
Las reglas de produccin P son :
<nmero> ::= <dgito> <nmero>
<nmero> ::= <dgito>
<dgito> ::=
Ejemplo 3.4
Sea la gramtica G = (VN, VT, S, P) donde :
S ab
S aSb
S ASB
A b
aaA aaBB
S d
A aA
B dcd
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
- 8 -
DEFINICIN FORMAL DE
GRAMTICA
VN = { <dgito> , <otroDgito> , <Base2>, <vacio>}
VT = { 0, 1 }
S = <Base2>
Las reglas de produccin P son :
<Base2> ::= <dgito> <otroDgito>
<otroDgito> ::= <dgito> <otroDgito> | <vacio>
<dgito> ::=
<vacio> ::=
3.5 Notacin
Se usar la que se describe a continuacin, por ser la ms extendida en la bibliografa
Aho y Ullman (1973a, 1973b), Hopcroft y Ullman (1979), Aho et al. (1986), Sanchs y
Morales (1986), Alfonseca et al. (1987), y Snchez y Valverde (1989).
3.5.1 Vocabulario terminal
Los elementos del vocabulario terminal se representan por :
- letras minsculas de comienzo del abecedario : a, b, c, . . . , g.
- operadores tales como : + , - , * , / , . . .
- caracteres especiales : # , @ , ( , ) , . , ; , . . .
- los dgitos : 0, 1, . . . , 9
- las palabras reservadas de lenguajes de programacin con letras minsculas
y en negrita : if, then, else, . . .
3.5.2 Vocabulario no terminal
Los elementos del vocabulario no terminal se representan por :
- letras maysculas de comienzo del abecedario : A, B, . . . , G. La nica
excepcin suele ser el smbolo inicial que se representa con S.
- nombres en minscula, pero encerrados entre parntesis angulares : <ex-
presin>, <operador>, . . .
3.5.3 Vocabulario
Los elementos indiferenciados del vocabulario terminal y no terminal se denotan
con :
0 | 1
- 9 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
- las letras maysculas del final del abecedario : U, V, W, X, Y, Z.
3.5.4 Cadenas terminales
Las cadenas compuestas totalmente por smbolos terminales se representan como :
- las letras minsculas del final del abecedario : t, u, v, x, y, z.
3.5.5 Cadenas
Las cadenas que contienen smbolos terminales y no terminales indiferenciados se
representan por :
- letras minsculas griegas : . . . , , ,
, ,
- 10 -
RELACIONES ENTRE
CADENAS
CAPTULO 4: RELACIONES ENTRE CADENAS
En este captulo se muestran las relaciones de derivacin directa y de derivacin entre
las cadenas de un determinado lenguaje descrito por una gramtica.
4.1 Relacion de derivacin directa
Sea una gramtica G = (VN,VT,S,P), si es una produccin, es decir
y es una cadena, es decir , entonces las cadenas y estn en la
relacin de derivacin directa de la gramtica G, que se puede expresar por:
y se puede decirquela cadena deriva directamentede la , o bien que produce
directamente en la gramtica G. De ah el nombre de producciones para los elementos
de P.
Ejemplo 4.1.1
Sea la gramtica : G = ( VT, VN, S, P) donde VT = {a, b}, VN = {S}, y el conjunto
de producciones es :
Se obtiene la siguiente derivacin directa, al sustituir la primera regla en la segunda :
4.2 Relacion de derivacin
Sean y cadenas pertenecientes a V , se dice que estn en relacin de derivacin
+
en la gramtica G si existen tales que :
o
|
( ) o|e P

e
V
+
yo

y|

yo

yo

y|

S ab
S aSb
S aabb
o
1
o
m
..., ooo o
1, 2, 3, m
- 11 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
. . .
se escribir entonces:
dicindose que deriva de , o que produce .
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)
(2)
(3)
(4)
(5)
(6)
Por aplicacin de derivaciones inmediatas a partir del smbolo inicial se obtiene la
derivacin :
Las derivaciones inmediatas necesarias para llegar a la derivacin anterior se
muestran a continuacin, indicndose en cada paso el nmero de la regla aplicada.
o
so
1 2
o
so
2 3
o
so
3 4
o
(m 1)
o
m
o
so
1 m
o
m
o
1
o
1
o
m
S ASB
Ab
aaA aaBB
S d
AaA
B dcd
S abddcd
S
(1)
ASB
(5)
aASB
(2)
abSB
(4)
abdB
(6)
abddcd
- 12 -
SENTENCIAS O
INSTRUCCIONES
CAPTULO 5: SENTENCIAS O INSTRUCCIONES
Se denominan sentencias o instrucciones de un lenguaje a cualquier cadena que sea
el resultado ltimo de una derivacin a partir del smbolo inicial S y que est compuesta
nicamente por smbolos terminales, es decir
Ejemplo 5.1
Utilizando la relacin de derivacin directa del ejemplo 4.1.1, la derivacin da lugar
a la sentencia :
aabb
Ejemplo 5.2
Continuando con el ejemplo 4.2.1, la derivacin da lugar a la sentencia :
abddcd
S o
m
y o
se
m
VT
- 13 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
CAPTULO 6: DEFINICIN FORMAL DE LENGUAJE
El lenguaje L(G) generado por una gramtica G es el conjunto de todas las sentencias
que puede generar G. Es decir expresado formalmente :
Una sentencia pertenece a L(G) si :
- est compuesta de smbolos terminales
- la sentencia puede derivarse del smbolo inicial S aplicando las reglas de
produccin de la gramtica.
6.1 Propiedad
Dos gramticas son equivalentes si ambas generan el mismo lenguaje.
G y G son equivalentes si L(G )=L(G )
1 2 1 2
Ejemplo 6.2
Sea la gramtica definida por G = ({S}, {0,1}, S,P) donde P={(S
2
000S111),
(0S1 01)}. Determinar el lenguaje que genera.
Solucin : La nica forma de generar sentencias es aplicando cualquier n de veces
la primera produccin y terminando con la aplicacin de la segunda, as se obtiene el
lenguaje.
Por consiguiente el lenguaje que genera esta gramtica es el conjunto infinito de
instrucciones que se indica a continuacin :
Ejemplo 6.3
Si la 2 produccin de la gramtica del ejemplo 6.2 fuese el lenguaje sera :
L(G) ={qe VT
*
/S } q

S 000S111 000000S111111

0
(3n 1)
0S11
(3n 1)
0
(3n) ( s
1
3n)
L(G
2
)
= {
0
(3n) ( s
1
3n)
/n > 1}
S 01
L(G
3
)
= {
0
(3n + 1) ( s
1
3n + 1)
/n > 0}
- 14 -
DEFINICIN FORMAL DE
LENGUAJE
Ejemplo 6.4
Seala gramtica G = ({S}, {a,b}, S, P) donde P={(S
4
aSb), (S ab)}. Determinar
el lenguaje que genera.
Solucin : Aplicando la primera produccin n-1 veces, seguida por la aplicacin de
la segunda produccin, se tiene que :
El lenguaje generado :
L(G )={a b /n 1}
4
n n
Ejemplo 6.5
Dada la gramtica G = ({S,A}, {a,b}, S, P) donde P={(S
5
abAS), (abA baab),
(S a), (A b)}. Determinar el lenguaje que genera.
Solucin : Se generan sentencias del lenguaje aplicando las reglas hasta que se pueda
ver la forma general del lenguaje.
L(G ) = {cadenas que contienen abb y baab intercambindose y reproducindose
5
cualquier nmero de veces, y terminando siempre con el smbolo a}
Se puede observar que la forma de expresar este lenguaje no es simple, y surge la
necesidad de tener una herramienta que permita describir los lenguajes de otra forma.
Ejemplo 6.6
Sea la gramtica G = ({S,A,B}, {a,b}, S, P) donde las producciones P son :
6

S aSb aaSbb a Sb
3 3


a
(n 1)
Sb
(n 1)
a b
n n
>

S abAS baabS baaba


S a
S abAS abbS abba
S abAS abAabAS
(
abA)
n
S
(
abb )
n
a
S abAS abAabAS
(
abA)
n
S
(
baab )
n
a
S abAS abAabAS abbbaaba
S abAS abAabAS baababba
S abAS abAabAS abAabAabASbaababbbaaba
- 15 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Determinar el lenguaje que genera.
Solucin : Se generan algunas instrucciones.
Se puede demostrar (Hopcroft y Ullman (1979), pp. 81-82) que el lenguaje generado
es :
L(G ) = {cadenas que tienen igual n de a que de b}
6
La demostracin no es inmediata.
Ejemplo 6.7
Sea la gramtica G = (VN, VT, S, P) donde :
7
VN = { <nmero> , <dgito> }
VT = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
S = <nmero>
Las reglas de produccin P son :
<nmero> ::= <dgito> <nmero>
<nmero> ::= <dgito>
<dgito> ::=
Determinar el lenguaje que genera.
Solucin : A continuacin se muestran algunas sentencias del lenguaje generado por
esta gramtica.
S aB A bAA
S bA B b
A a B bS
A aS B aBB
S aB ab
S bA ba
S aB abS abbA abba
S bA bbAAbbaa
S aB abS abaB ababS ababaB ababab
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
- 16 -
DEFINICIN FORMAL DE
LENGUAJE
L(G ) = {conjunto de los nmeros naturales en base diez}.
7
Ejemplo 6.8
Sea la gramtica G = ({A,S}, {a,b}, S, P) donde las reglas de produccin son :
8
Determinar el lenguaje que genera esta gramtica.
Solucin : Se muestran algunas sentencias del lenguaje generado por la gramtica.
El lenguaje generado se puede definir con la siguiente expresin regular, cuya
definicin se estudiar en el captulo 9.
L(G ) = a a b b
8
* *
< nmero > < dgito >< nmero >7 < nmero >72
< nmero > < dgito >7
< nmero > < dgito >0
< nmero > < dgito >< nmero > < dgito >< dgito >< nmero >

235
S aS
S aA
A bA
A b
S aS aaA aab
S aA ab
S aS aaS aaaS

a S
n
a aA
n
a
n + 1
b
S aA abA abbA abbbA

ab A
n
ab
n + 1
- 17 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
CAPTULO 7: JERARQUA DE LAS GRAMTICAS
Chomsky defini cuatro tipos distintos de gramticas en funcin de la forma de las
reglas de derivacin P (Chomsky, 1959). La clasificacin comienza con un tipo de
gramticas que pretende ser universal, aplicando restricciones a sus reglas de derivacin
se van obteniendo los otros tres tipos de gramticas. Esta clasificacin es jerrquica, es
decir cada tipo de gramticas engloba a todos los tipos siguientes.
7.1 Gramticas de tipo 0
Tambin llamadas gramticas no restringidas o gramticas con estructura de frase.
Las reglas de derivacin son de la forma:
siendo y , 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.
7.2 Gramticas de tipo 1
Tambien llamadas gramticas sensibles al contexto (en ingls context sensitive). En
ellas las reglas de produccin son de la forma :
siendo A VN; y .
Estas gramticas se llaman sensibles al contexto, pues se puede reemplazar A por
siempre que estn en el contexto .
7.2.1 Ejemplos de gramticas de tipo 1
A continuacin se muestran varios ejemplos de gramticas de tipo 1, que se adaptan
a la definicin anterior.
o
|
oe
(
VN.VT)
( s|e
+
VN.VT)
*
i
|
i
i
|
i
oA

, ( o|e VN.VT) ( sy e
*
VN.VT)
+
e

o
|
- 18 -
JERARQUA DE LAS
GRAMTICAS
Ejemplo 7.2.1.1
La gramtica G = ({S,A,B}, {a,b}, S, P) cuyas producciones P se muestran a conti-
nuacin es de tipo 1.
Ejemplo 7.2.1.2
La gramtica G = (VN, VT, S, P) donde VN = { <nmero> , <dgito> }; VT = { 0,
1, 2, 3, 4, 5, 6, 7, 8, 9 }; S = <nmero> y las reglas de produccin P que se muestran a
continuacin es de tipo 1.
<nmero> ::= <dgito> <nmero>
<nmero> ::= <dgito>
<dgito> ::=
Ejemplo 7.2.1.3
La gramtica G = ({a,b}, {A,S}, S, P) donde P son las producciones que se muestran
a continuacin es de tipo 1.
7.2.2 Ejemplos de gramticas que No son de tipo 1
A continuacin se muestran algunos ejemplos de gramticas que no son de tipo 1, y
que pueden ilustrar mejor la definicin de estas gramticas.
Ejemplo 7.2.2.1
La gramtica definida como G = ({S}, {a,b}, S, P) donde P son las siguientes
producciones :
S aB A bAA
S bA B b
A a B bS
A aS B aBB
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
S aS
S aA
A bA
A b
- 19 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
La produccin no es del tipo 1, pues se sustituye S por vaco en el contexto
a...b.
Sin embargo si se esta produccin fuera o , entonces sera de tipo
1.
Ejemplo 7.2.2.2
La gramtica G = ({S,A}, {a,b}, S, P) con las producciones P siguientes :
No es del tipo 1, ya que la produccin no es sensible al contexto. Lo
sera si fuese .
7.2.3 Propiedades de las gramticas de tipo 1
A continuacin se presenta la propiedad de no decrecimiento de las gramticas de
tipo 1, que se presenta en forma directa e inversa, lo cual permite intercambiar dicha
propiedad con la definicin dada anteriormente.
7.2.3.1 Propiedad de no decrecimiento
Las cadenas que se obtienen en cualquier derivacin de una gramtica de tipo 1 son
de longitud no decreciente, es decir :
y que se puede enunciar como la longitud de la parte derecha de la produccin es mayor
o igual a la de la parte izquierda.
La demostracin es inmediata. Si se define una produccin de un lenguaje tipo 1
como :
S aaaaSbbbb
aSb ab
aSb ab
S ab aSb abb
S abAS
abA baab
S a
A b
abA baab
abA abab
o|
| | | |
oA

- 20 -
JERARQUA DE LAS
GRAMTICAS
siendo , es decir nunca puede ser la cadena vacia, lo que implica que
y como como mnimo vale 1, queda demostrada la propiedad :
7.2.3.2 Propiedad de sensibilidad al contexto
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
Sea la gramtica G = ({S,B,C}, {a,b,c}, S, P) donde P son las producciones :
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) = { a b c / n
n n n
1 }
( ye VN.VT)
+

| | y> 1 | A |
| o A | | |
|
S aSBC
S aBC
CB BC
bB bb
bC bc
cC cc
aB ab

>
- 21 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
7.3 Gramticas de tipo 2
Las gramticas de tipo 2 tambin se denominan gramticas de contexto libre o libres
de contexto (en ingls context free). Sus reglas de produccin tan slo admiten tener un
smbolo no terminal en su parte izquierda, es decir son de la forma :
siendo A VN y .
Si cada regla se representa como un par ordenado (A, ), el conjunto P es un sub-
conjunto del conjunto producto cartesiano VN ({VN VT}) , es decir :
+
La denominacin contexto libre se debe a que se puede cambiar A por , indepen-
dientemente del contexto en que aparezca A.
Ejemplo 7.3.1
La gramtica G = ({S,A,B}, {a,b}, S, P) cuyas producciones P se muestran a conti-
nuacin es de tipo 2.
Ejemplo 7.3.2
La gramtica G = (VN, VT, S, P) donde VN = { <nmero> , <dgito> }; VT = { 0,
1, 2, 3, 4, 5, 6, 7, 8, 9 }; S = <nmero> y las reglas de produccin P que se muestran a
continuacin es de tipo 2.
<nmero> ::= <dgito> <nmero>
<nmero> ::= <dgito>
<dgito> ::=
Ejemplo 7.3.3
La gramtica G = ({a,b}, {A,S}, S, P) donde P son las producciones que se muestran
a continuacin es de tipo 2.
A o
oe
(
VN.VT)
+
e
o

.
P c
{
N({ VN} { . VT})}
+
o
S aB A bAA
S bA B b
A a B bS
A aS B aBB
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
- 22 -
JERARQUA DE LAS
GRAMTICAS
7.4 Gramticas de tipo 3
Las gramticas de tipo 3 tambien denominadas regulares o gramticas lineales a la
derecha comienzan sus reglas de produccin por un smbolo terminal, que puede ser
seguido o no por un smbolo no terminal, es decir son de la forma :
donde A,B VN y VT.
Ejemplo 7.4.1
La gramtica G = ({a,b}, {A,S}, S, P) donde P son las producciones que se muestran
a continuacin es de tipo 3.
7.5 Lenguajes con la cadena vacia
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:
Bastar aadir de algn modo a la descripcin del lenguaje L.
Una forma de hacer esto es aadir la siguiente regla de produccin a las reglas
de la gramtica que describe L. Pero se haba impuesto a las reglas de las gramticas de
S aS
S aA
A bA
A b
A aB
A a
eoe
S aS
S aA
A bA
A b
L = L { } .i
i
S i
- 23 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
tipo 1 , con la condicin de , para cumplir la propiedad de no
decrecimiento. Si se aade ser necesario imponer la condicin de que no aparezca
en la parte derecha S, tal y como se ver en el teorema 7.5.1
Teorema 7.5.1
Si G es una gramtica de tipo 1, 2, o 3 puede encontrarse una gramtica equivalente
G de tipo 1, 2 o 3 respectivamente, tal que L(G)=L(G) y adems su smbolo inicial S,
no aparece en el segundo trmino de ninguna regla de G. Es decir si G=(VT,VN,P,S)
se puede encontrar G=(VT,VN ,P,S) donde P=P
*
. La
demostracin se puede encontrar en las pginas 437-438 del libro Fundamentos de
Informtica, Fernndez G. y Sez Vacas F.).
Corolario 7.5.2
Si L es un lenguaje de tipo 1, 2 o 3 entonces y son lenguajes de tipo
1, 2, o 3 respectivamente.
Corolario 7.5.3
Dada una gramtica G cualquiera de tipo 1, 2o 3 se puede obtener otra G, con
de forma que .
7.6 Relacin de inclusin
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.
oA

i
S i

{ . S /( o S ) oe P}
L { } .i L { } i
S i
L(G)
=
L(G) { } .i
- 24 -
JERARQUA DE LAS
GRAMTICAS
Fig. 1 : Relacin de inclusin entre los distintos tipos de
gramticas
JERARQUIA DE LAS GRAMATICAS
TIPO 0 TIPO 1 TIPO 2 TIPO 3
- 25 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
CAPTULO 8: CORRESPONDENCIA ENTRE
GRAMTICAS Y LENGUAJES
Se denomina lenguaje de tipo 0 al generado por una gramtica de tipo 0. De la misma
forma, se denominan lenguajes de tipo 1, tipo 2, y tipo 3, a los generados por las gramticas
de tipo 1, tipo 2, y tipo 3, respectivamente.
Si los lenguajes generados por los distintos tipos de gramticas se se relacionan entre
s con respecto a la relacin de inclusin se obtiene :
{L(G )} {L(G )} {L(G )} {L(G )}
3 2 1 0
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.
ccc
- 26 -
CORRESPONDENCIA ENTRE GRAMTICAS Y
LENGUAJES
Fig. 2 : Correspondencia entre gramticas y lenguajes
TIPO 0 TIPO 1 TIPO 2
TIPO 3
LENGUAJES
GRAMATICAS
CORRESPONDENCIA ENTRE
LOS LENGUAJES Y LAS
GRAMATICAS
TIPO 0 TIPO 1 TIPO 2 TIPO 3
- 27 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
CAPTULO 9: EXPRESIONES REGULARES
Anteriormente se estudiaron los lenguajes formales, y se vio como en algunos
ejemplos no era fcil representar los lenguajes de una manera condensada. En este captulo
se va a presentar una herramienta, las expresiones regulares, para describir lenguajes de
tipo 3 o lenguajes regulares.
Las expresiones regulares se introducen para describir los lenguajes regulares,
entonces las expresiones regulares sern metalenguajes. Es decir las expresiones regulares
son un metalenguaje para describir los lenguajes regulares.
9.1 Operaciones con los lenguajes regulares
a) Unin o alternativa : Sean dos lenguajes definidos sobre un mismo alfabeto, se
denomina unin de los dos lenguajes al conjunto formado por las cadenas que pertenezcan
indistintamente a uno u otro de los dos lenguajes. Formalmente se puede expresar :
b) Concatenacin : Sean dos lenguajes definidos sobre el mismo alfabeto, se
denomina concatenacin de los dos lenguajes al conjunto de todas las cadenas formadas
concatenando una palabra del primer lenguaje con otra del segundo. Formalmente se puede
expresar :
c) Potencia de un lenguaje : Desde un punto de vista estricto esta no es una nueva
operacin, sino un caso particular de la anterior. Se denomina potencia i-sima de un
lenguaje a la operacin que consiste en concatenarlo consigo mismo i-veces. En el caso
de i=0, el resultado es el conjunto vacio.
d) Cierreu operacin estrella : Laoperacincierre deunlenguajeLes otrolenguaje
L obtenido uniendo el lenguaje L con todas sus potencias posibles, incluso L . Formal-
* 0
mente se puede expresar como :
e) Cierre positivo : La operacin cierre positivo de un lenguaje L es otro lenguaje
L obtenido uniendo el lenguaje L con todas sus potencias posibles, excepto L . Formal-
+ 0
mente se puede expresar como :
L
1
.L
2
=
{
x/x e L
1
v x e L
2
}
L L
1 2
=
{
x x
1 2
/x
1
e L
1
x
2
e L
2
}
L
*
={ } { . L} { . LL} { . LLL}
= .
n = 0
~
L
n
- 28 -
EXPRESIONES
REGULARES
9.2 Operaciones con las expresiones regulares
Si es una expresion regular, entonces es el conjunto descrito por la expresin
regular . Tambin se puede decir que denota el lenguaje de la cadena .
Las expresiones regulares describen los lenguajes regulares, luego sus operaciones
corresponderan a las indicadas para los lenguajes regulares.
a) Unin o alternativa : Si y son expresiones regulares, es una expresion
regular tal que :
es decir puede aparecer o indistintamente.
b) Concatenacin : Si y son expresiones regulares, es una expresin regular
tal que
c) Cierre u operacin estrella : Si es una expresin regular, entonces es una
expresin regular que denota { } . Es decir denota las cadenas :
*
d) Cierre positivo : Si es una expresin regular, entonces es una expresin
regular que denota { } . Es decir denota las cadenas :
+
L
+
=
{
L} { . LL} { . LLL}
= .
n = 1
~
L
n
{ } oo
o
o
so
o | | o|
{ | o
} = {
} { } o.|
o |
o | o|
{ }={ }{ } o| o |
o
*
o
o
i
o
oo
ooo
oooo

oo
oo
o
+
o
o
- 29 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
9.3 Precedencia de las operaciones
Se permite el uso de parntesis para indicar la precedencia de las operaciones, pero
cuando nose utilizan parntesis para evaluar una expresin regular, hay que tener en cuenta
el siguiente orden de precedencia :
1.- Uso de parntesis
2.- Operacin cierre y cierre positivo
3.- Operacin concatenacin
4.- Alternativa
9.4 Teorema
Dos expresiones regulares son iguales, si designan al mismo conjunto regular.
9.5 Propiedades
A partir del teorema anterior se pueden enunciar las siguientes propiedades :
a) Asociatividad de la operacin concatenacin
b) Distributividad de la operacin alternativa respecto de la concatenacin
c) es el elemento neutro de la concatenacin, es decir
d) Propiedades de la operacin cierre
o
oo
ooo
oooo

oo
oo
( ) = (
)
| o|
= (
| )
i
= oi i
= o o
- 30 -
EXPRESIONES
REGULARES
d.1)
d.2)
d.3)
d.4)
Ejemplo 9.6
Sea el vocabulario {a,b} y la expresin regular . Indicar el lenguaje que
denota, y algunas cadenas de dicho lenguaje.
Solucin : Algunas cadenas son:
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
Sea el vocabulario {0,1}, la expresin regular denota el conjunto de cadenas
que empiezan por 1 y van seguidas por (01) cualquier n de veces o ninguna.
Ejemplo 9.8
Sea el vocabulario {0,1}, la expresin regular denota el conjunto de nmeros
en base 2.
Ejemplo 9.9
Sea el vocabulario {0, 1, 2}, la expresin regular denota el conjunto de
nmeros en base 3.
( | ) = ( | o| o
) = (
)
* * *
*
* *
*
( | o
) =( | i o
) =
o
* * *
| oo
= i o
* *
i
*
= i
aa bb
* *
1(01)
*
(0 | 1)
+
(0 | 1 | 2)
+
- 31 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Ejemplo 9.10
Dada la expresin regular , 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
Sea el vocabulario {1,2,3}, la expresin regular indica el conjunto de todas
las cadenas formadas con los smbolos 1 y 2, sucedindose cualquier n de veces (y en
cualquier orden), y siempre terminando la cadena en el smbolo 3. Ejemplos de sentencias :
3 23
13 223
123 113
11113 121211223
221113 111212213
Ejemplo 9.12
Sea el vocabulario {a,b,c}, la expresin regular a bc denota el lenguaje formado
por las sentencias a y bc.
Ejemplo 9.13
Sea el vocabulario {a,b}, la expresin regular denota el lenguaje
compuesto por todas las cadenas cuya longitud es cero o un n par, y estn compuestas
solamente por el smbolo a, el smbolo b, o por smbolos a y b.
(a | b)
*
i
(1 | 2)
*
3
|
((a | b) (a | b))
*
- 32 -
EXPRESIONES
REGULARES
Ejemplo 9.14
Sea el vocabulario {a,b}, la expresin regular (a b)(a b) denota el lenguaje com-
puesto por todas las cadenas de longitud dos formadas con los smbolos a y b. Se pueden
definir por enumeracin {aa, ab, ba, bb}.
Ejemplo 9.15
Dar una expresin regular para identificador:
Tambin se puede definir identificador como:
Ejemplo 9.16
Dar una expresin regular para los nmeros reales sin exponente del lenguaje Pascal
estndar.
Solucin :
Ejemplo 9.17
La expresin regular denota el lenguaje .
|
|
<letra> (<letra> | <dgito>)
*
(a | b | c |

z) (a | b | c | d |

z | 0 | 1 |

9)
*
( | +| )(< i dgito >< dgito >
<
*
dgito ><
*
dgito >)
a b
* *
{a b
m n
/m > 0yn > 0}
- 33 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
CAPTULO 10: AUTMATAS
La palabra autmata evoca algo que pretende imitar las funciones propias de los
seres vivos, especialmente relacionadas con el movimiento, por ejemplo el tpico robot
antropomorfo. En el campo de los Traductores, Procesadores, Compiladores e Intrpretes,
lo fundamental no es la simulacin del movimiento, sino la simulacin de procesos para
tratar informacin.
La informacin se codifica en cadenas de smbolos, y un autmata es un dispositivo
que manipula cadenas de smbolos que se le presentan a su entrada, produciendo otras tiras
o cadenas de smbolos a su salida.
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.
Todoloanteriorconduceadefinirunconceptofundamental :estadodeunautmata.
El estado de un autmata es toda la informacin necesaria en un momento dado, para
poder deducir, dado un smbolo de entrada en ese momento, cual ser el smbolo de salida.
Es decir, conocer el estado de un autmata, es lo mismo que conocer toda la historia de
smbolos de entrada, as como el estado inicial, estado en que se encontraba el autmata
al recibir el primero de los smbolos de entrada.
El autmata tendr un determinado nmero de estados (pudiendo ser infinitos), y se
encontrar en uno u otro segn sea la historia de smbolos que le han llegado.
Se define configuracin de un autmata a su situacin en un instante. Se define
movimiento de un autmata como el transito entre dos configuraciones.
Si un autmata se encuentra en un estado determinado, recibe un smbolo tambin
determinado, producir un smbolo de salida y efectuar un cambio o transicin a otro
estado (tambin puede quedarse en el mismo estado).
El campo de estudio de los Traductores, Procesadores e Intrpretes son los lenguajes
y las gramticas que los generan. Los elementos del lenguaje son sentencias, palabras,
etc... formadas a partir de un alfabeto o vocabulario, que no es otra cosa que un conjunto
finito de smbolos. Establecidas las reglas gramaticales, una cadena de smbolos
pertenecer al correspondiente lenguaje si tal cadena se ha formado obedeciendo esas
reglas. Entonces un autmata reconocedor de ese lenguaje, funciona de tal forma que
- 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
reconocercadaunodelostiposdelenguajesgeneradosporlascorrespondientesgramticas.
10.1 Definicin formal de autmata
Un autmata es una quntupla A = ( E, S, Q, f, g ) donde :
E = {conjunto de entradas o vocabulario de entrada}
S = {conjunto de salidas o vocabulario de salida}
Q = {conjunto de estados}
E es un conjunto finito, y sus elementos se llaman entradas o smbolos de entrada.
S es un conjunto finito, y sus elementos se llaman salidas o smbolos de salida.
Q es el conjunto de estados posibles, puede ser finito o infinito.
fes 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.
ges la funcin de salida, y para un par del conjunto E Q, devuelve un smbolo de
salida del conjunto S.
10.2 Representacin de autmatas
Los autmatas se pueden representar mediante :
- Tabla de transiciones
- Diagrama de Moore
10.2.1 Tabla de transiciones
Las funciones f y g pueden representarse mediante una tabla, con tantas filas como
estadosy tantas columnas como entradas. As por ejemplo se puede representarel autmata
A = ( E, S, Q, f, g ) donde E = {a,b}, S = {0,1}, Q = {q ,q,q} y las funciones f y g se
1 2 3
pueden representar por :
f :
E
Q Q
g:E Q S

- 35 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
f a b g a b
q
1
q
1
q
2
q
1
0 1
q
2
q
3
q
2
q
2
0 0
q
3
q
3
q
1
q
3
1 0
As se tiene que ; ; o tambin ; y .
Ambas funciones tambin se pueden representar en una misma tabla de la siguiente
forma :
f / g a b
q
1
q /0
1
q /1
2
q
2
q /0
3
q /0
2
q
3
q /1
3
q /0
1
10.2.2 Diagramas de Moore
Los diagramas de Moore son otra forma de representar las funciones de transicin y
salida de un autmata.
El diagrama de Moore es un grafo orientado en el que cada nodo corresponde a un
estado;y sif( , q ) = q yg( , q ) = sexiste un arcodirigido delnodoq alcorrespondiente
i j i i
q , sobre el que se pone la etiqueta
j
/ s, tal y como se muestra en la figura 3.
Fig. 3 : Diagrama de
Moore.
As continuando con el ejemplo del apartado 10.2.1, el autmata se representa con
el diagrama de Moore de la figura 4.
f(a , q
1
)
=
q
1
g(a , q
1
)
=
0 f(a , q
2
)
=
q
3
g(a , q
3
)
=
1


/s
q q
i
j
- 36 -
AUTMATAS
Fig. 4 : Ejemplo de diagrama de
Moore.
10.3 Mquinas de Moore y Mealy
El modelo general de autmata que se ha definido se llama mquina de Mealy.
Se puede plantearel siguiente problema : si se considera que adems de los elementos
del vocabulario de entrada E, un elemento vacio , que fsicamente indica que no hay
entrada, se han de ampliar los dominios de las definiciones de la siguiente forma :
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.
No ocurre lo mismo con la ampliacin del dominio de g, ya que g( ,q), produce
una salida indeterminada, pues depende del estado anterior al q. As por ejemplo en el
autmata del apartado 10.2.1, se observa que :
g( ,q )=1, si el estado anterior es q .
2 1
g( ,q )=0, si el estado anterior es q .
2 2
a/0
b/0
a/1 a/0
b/0
b/1
q
q q
1
2 3
i
f
:
{E { }} .i QQ
g
:
{E { }} .i QS
i
i
i
i
- 37 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
ya que si se llega a q desde q la salida es 1, mientras que si se alcanza desde el propio q
2 1 2
la salida es 0.
Entonces slo se puede ampliar el dominio de g, si a cada estado q se le puede asociar
una salida y slo una.
Cuando esto ocurre para todo q Q, se puede definir una aplicacin inyectiva :
tal que g se obtiene como composicin de h por f :
es decir g(e,q) = h(f(e,q)), donde . En este caso, se puede decir,
que la salida slo depende del estado, y el autmata se llama mquina de Moore.
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 decirque unamquina de Mealy,en el instante deefectuar unatransicin
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
encontrarunamquinadeMooreequivalente,normalmente,acostadeaumentarelnmero
de estados.
En efecto sea la mquina de Mealy A = (E, S, Q, f, g) siempre se puede definir un
nuevo autmata :
en el que se obtiene escindiendo en tantos estados q como salidas s pueden
s
asociarse a q, es decir
y en el que y se definen de la siguiente forma :
e
h:Q S
g = h f

e e
{
E { }} .i y q e Q
e i
i

A =
(
E,S,Q

f, g)

Q q e Q

Q=
{
q
s
/ ( q
e
Q y e e E) tales que f(e, q ) =q y g(e, q ) =s }

fg
- 38 -
AUTMATAS
(e, q ) = [f(e,q)]
s g(e,q)
(e, q ) = g(e,q)
s
De este modo, a cada se le puede asociar una sola salida s, y as tendra una funcin
de salida :
tal que (e, q ) = ( (e, q )), por lo tanto
s s
es una mquina de Moore.
En lo sucesivo siempre que slo se tratarn autmatas que son mquinas de Moore.
Ejemplo 10.3.1
Construir una mquinade Moore equivalente a lamostrada en elejemplo delapartado
10.2.1.
Solucin : Se construye la siguiente tabla de transiciones combinada.
a b
q
1
0
q
1
0
q
2
1
q
2
0
q
3
0
q
2
0
q
2
1
q
3
0
q
2
0
q
3
0
q
3
1
q
1
0
q
3
1
q
3
1
q
1
0
Se observa que al estado q siempre se le asocia la salida 0; sin embargo q puede
1 2
tener la salida 0 1, se crean entonces los estados q
2
0
yq ; de la misma forma q
2
1
3
0
yq .
3
1
Esta mquina de Moore se puede representar por el diagrama de la figura 5. Las
salidas estn indicadas en los nodos como superndices de los estados.

f
g
q
s
e

h:Q

S
g

A
g = h f

- 39 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Fig. 5 : Ejemplo de mquina de
Moore.
10.4 Estados accesibles de un autmata
Seaun autmataA=(E,S,Q,f,g), se dice queun estado q es accesibledesde otro estado
j
q , si existe una entrada e E tal que f(q ,e)=q .
i
*
i j
Evidentemente todo estado es accesible desde s mismo, puesto que f(q , )=q .
i i
10.5 Autmatas conexos
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 q .
0
Dado un autmata no conexo se puede encontrar otro equivalente y conexo elimi-
nando los estados inaccesibles. Es evidente que los dos autmatas aceptarn el mismo
lenguaje.
10.6 Autmatas deterministas y no deterministas
Se denomina autmata determinista cuando la funcin de cambio de estado f es
determinista. En caso contrario se dice no determinista.
q
q
q
q
q
a
a
a
a
a
b
b
b
b
b
3
1
1
0
0
3
2
1
0
2
e
i
- 40 -
JERARQUA DE LOS
AUTMATAS
CAPTULO 11: JERARQUA DE LOS AUTMATAS
En el campo de los Traductores, Procesadores, Compiladores e Intrpretes, la teora
de autmatas interesa desde el punto de vista de las relaciones entre el tipo de lenguaje y
la estructura de la mquina capaz de reconocerlo. Estas relaciones pueden ser en dos
sentidos :
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?
En los apartados siguientes se expondr como paralelamente a la jerarqua de
gramticasy delenguajes,apareceunajerarqua deautmatas,cuyacorrespondenciapuede
verse en el diagrama de la figura 6.
- 41 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Fig. 6 : Correspondencia entre gramticas, lenguajes y autmatas.
TIPO 0 TIPO 1 TIPO 2 TIPO 3
LENGUAJES
GRAMATICAS
CORRESPONDENCIA ENTRE LOS
LENGUAJES
LAS GRAMATICAS Y LOS
AUTOMATAS
TIPO 0 TIPO 1 TIPO 2 TIPO 3
AUTOMATAS
TIPO 0 TIPO 1 TIPO 2 TIPO 3
- 42 -
MQUINAS DE
TURING
CAPTULO 12: MQUINAS DE TURING
Su nombre se debe a Alan Mathison Turing, que fu quien introdujo el concepto en
1936 (A. M. Turing, 1936; C. Conde, 1969; J.E. Hopcroft, 1984). Una mquina de Turing
o autmata de tipo 0 es una construccin lgica, que se puede representar intuitivamente
como un dispositivo mecnico (fig. 7), formado por una cinta infinita, dividida en celdas,
y un cabezal de lectura/escritura que se mueve sobre dicha cinta, avanzando una celda de
cada vez. En la figura 7 se representa el caso particular de un conjunto de smbolos en la
cinta formados por 0 y 1.
Un movimiento de la mquina de Turing, depende del smbolo explorado con la
cabeza, y del estado actual en el que se encuentra la mquina, el resultado puede ser :
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.
Pueden darse los tres fenmenos anteriores, juntos o separados.
Formalmente una mquina de Turing es un autmata, y como todo autmata est
formado por una quntupla MT = (E, S, Q, f, g) sin embargo suele usarse la notacin
equivalente :
Fig. 7 : Esquema de mquina de
Turing.
donde :
MT =
(
Q, L ,
, I
,
q
0
, B, F)
0 0 0 0 0 1 1 1 1 1 1
1
1 1 1
CINTA
CABEZA DE LECTURA / ESCRITURA
MOVIMIENTO A IZQUIERDA MOVIMIENTO A DERECHA
CELDA
- 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.
- donde es la funcin del siguiente movi-
miento, I significa movimiento a izquierda, D significa movimiento a derecha,
y S parada (stop).
- es el estado inicial.
- 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.
En un principio la cabeza de la mquina de Turing est situada a la izquierda de la
cadena a reconocer, y su estado es el estado inicial q .
0
Formalmente, el lenguaje aceptado por una mquina de Turing
es :
Una mquina de Turing reconoce un lenguaje L si es capaz de reconocer todas las
sentencias de dicho lenguaje. Si una sentencia de L es aceptada, la maquina se para, es
decir alcanza un estado final. Pero si no se acepta la sentencia, la mquina de Turing no
se parar nunca.
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.
I
eI
Le
I
: Q I Q I
{
I, D, S}
q
0
e Q
F c Q
L
*
MT =
(
Q, L ,
, I
,
q
0
, B, F)
L(MT) =
{
W/WeL
*
yqW
0
o
1
po
2
p e F,
oo
} seI
1, 2
*
- 44 -
MQUINAS DE
TURING
12.3 Corolario
Existe una correspondencia entre gramticas, lenguajes y autmatas de tipo 0, tal y
como se mostr en el diagrama de la figura 6.
Ejemplo 12.4
Disear una mquina de Turing que acepte el lenguaje .
Solucin : Inicialmente la cinta contendr , sequido por ambos lados por un
nmero infinito de blancos.
El algoritmo de reconocimiento es el siguiente : la cabeza de lectura/escritura se
coloca en el 0 ms a la izquierda y lo reemplaza por una X, se mueve a la derecha hasta
encontrar el 1 ms a la izquierda, reemplazndolo por una Y, despus se mueve a la
izquierda hasta encontrar la X ms a la derecha, entonces se mueve una celda a la derecha,
y repite el ciclo.
La mquina deTuring que reconoce el lenguaje L es donde :
Q={ q
, q , q , q , q }
0 1 2 3 4
={0,1}
={0,1,X,Y,B}
F={q }
4
q es el estado inicial
0
La funcin viene dada por la tabla siguiente.
0 1 X Y B
q
0
q ,X,D
1
- - q ,Y,D
3
-
q
1
q ,0,D
1
q ,Y,I
2
- q ,Y,D
1
-
q
2
q ,0,I
2
- q ,X,D
0
q ,Y,I
2
-
q
3
-
-
-
q ,Y,D
3
q ,B,D
4
q
4
S S S S S
L =
{
0
n
1
n
/n > 1}
0
n
1
n
MT =
(
Q, L ,
, I
,
q
0
, B, F)
L
I

- 45 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Los guiones (-) en latabla significan estadosimposibles. La mquina primeroescribe,
luego cambia de estado y por ltimo se mueve. Utilizando la mquina anterior se puede
reconocer la cadena 0011 :
q 0011 Xq 011 X0q 11 Xq 0Y1 q X0Y1 Xq 0Y1
0 1 1 2 2 0
XXq Y1 XXYq 1 XXq YY Xq XYY XXq YY
1 1 2 2 0
XXYq Y XXYYq
3 3
XXYYBq
4
S

s
- 46 -
AUTMATAS LINEALES
ACOTADOS
CAPTULO 13: AUTMATAS LINEALES ACOTADOS
Los autmatas de tipo 1 son los autmatas limitados linealmente o autmatas lineales
acotados, en ingls linear bounded automaton. Un autmata lineal acotado es una mquina
de Turing que satisface las siguientes condiciones :
a) El alfabeto de entrada incluye dos smbolos especiales # y $, que son las
marcas fin de cinta, izquierda y derecha respectivamente.
b) La cabeza del autmata no puede desplazarse fuera de los limites izquierdo
y derecho de la cinta, y no puede imprimir otro smbolo sobre # y $.
Un autmata lineal acotado se puede representar por el diagrama de la figura 8. Se
representa el caso particular de que los smbolos de la cinta son 0 y 1.
Fig. 8 : Esquema de autmata lineal
acotado.
Un autmata lineal acotado se puede definir formalmente como una mquina de
Turing con dos smbolos lmite de la cinta.
donde Q, , q , y F significan lo mismo que en la mquina de Turing;#y$son
0
smbolos de , correspondientes a la marca izquierda y derecha de la cinta.
El lenguaje aceptado por un autmata lineal acotado, es :
L(ALA) = { W / W { - {#,$}} y q #W$
*
0
para algn q F}
0 0 0 0 0 1 1 1 1 1 1 1
CINTA
CABEZA DE LECTURA / ESCRITURA
MOVIMIENTO A IZQUIERDA MOVIMIENTO A DERECHA
CELDA
#
$
ALA =
(
Q, L ,
, I
,
q
0
, #, $, F}
, L I,
L
e L o q|
e
- 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
Para toda gramtica sensible al contexto G existe un autmata reconocedor lineal
1
acotado R
ALA
, tal que el lenguaje generado por la gramtica L(G ), es reconocido por el
1
autmata R
ALA
.
L(G )=L(R
1 ALA
)
13.2 Teorema
Si L(R
ALA
) es el lenguaje reconocido por un autmata lineal acotado, existe una
gramtica sensible al contexto G , tal que el lenguaje reconocido por el autmata es igual
1
al generado por la gramtica.
L(R
ALA
)=L(G )
1
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
CAPTULO 14: AUTMATAS DE PILA
Un autmata de pila AP, en ingls pushdown automata, es un autmata capaz de
reconocer los lenguajes libres de contexto, o de tipo 2. Los autmatas de pila se pueden
representar como una mquina de Turing, que slo puede leer de una cinta, y que puede
guardar resultados intermedios en una pila. De hecho, su capacidad de procesamiento es
inferior a los ALA, debido a las siguientes restricciones sobre las posibles operaciones con
la cinta y la pila :
- La cinta se desplaza en un slo sentido, y su cabeza slo puede leer.
- La pila, est limitada en un extremo por definicin,cuando se lee un elemento
de la pila, este desaparece o se saca, y cuando se escribe en la pila, se introduce
un elemento.
Las operaciones elementales, que se pueden realizar con un AP, son de dos tipos :
- Dependientesdela entrada : se leee
i
, y se desplazala cinta,yen funcin
de e ,q (el estado en que se encuentra la cinta), y Z (el valor de la pila), el
i j
control pasa a otro estado q , y en la pila se introduce Z, o se extrae Z, o no
l
se hace nada.
- Independientesde la entrada : puedeocurrirlo mismo queenel casoanterior,
slo que e no interviene, la cinta no se mueve, lo que permite manejar la pila
i
sin las informaciones de entrada.
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.
eL
- 49 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Fig. 9 : Esquema de un autmata de
pila.
Un autmata de pila se puede definir formalmente como una sptupla :
donde :
- Q es el conjunto finito de estados.
- es el alfabeto de entrada, es finito.
- es el alfabeto de pila.
- es la funcin de transicin, y es una aplicacin de la forma :
- q
0
es el estado inicial, y cumple q
0
Q.
- Z
0
es el smbolo inicial que contine la pila antes de comenzar, evidentemente
Z
0
.
- F es el conjunto de estados finales, evidentemente F Q.
Tal y como ha sido definida la funcin de transicin , el autmata es en general no
determinista. Se entiende por no determinista, cuando el resultado de la funcin no est
determinado, es decir pueden resultar dos o ms valores, sin que la funcin precise cual
va a tomar de ellos.
0 0 0 0 1 1 1
CINTA
PIL
A
CONTROL DE
ESTADOS
Q
Z
MOVIMIENTO DE LA
CINTA
AP =
(
Q, L ,
, I
,
q
0
, Z
0
, F)
L
I

: Q { { }} Q I
*
e
eI
c

- 50 -
AUTMATAS DE
PILA
Se define configuracin de un autmata de pila a su situacin en un instante, que se
puede expresar formalmente mediante el terceto :
donde :
- q representa el estado actual del autmata, y evidentemente .
- Wes la cadena de entrada que resta por analizar, siendo ; si ,
se asume que toda la cadena de entrada ya ha sido leda.
- es el contenido de la pila, en el instante considerado, y indica que
la pila est vacia. Por supuesto .
Se entiende por movimiento de un autmata a una transicin entre configuraciones,
y se representa por el operador binario . As por ejemplo sea el siguiente movimiento :
(q, aW, z ) (q, W, )
donde la funcin de transicin para esta entrada toma el valor , siendo
, , , , y .
Es decir que el autmata se encuentra en el estado q, que la cabeza de lectura de la
cinta se encuentra sobre el smbolo a, y que la pila contiene determinados smbolos
representados por la concatenacin de Z y , siendo el situado ms a la izquierda Z el que
se encuentra en cabeza de la pila (fig. 10).
(q, W, ) o
q e Q
WeL
*
W =
=
oe
I
*

y o
( q,aW,Z)
(
q , ) y
WeL
*
oe
I
*
q e Q a eL { } Z eI
o
CINTA
PILA
CONTROL DE ESTADOS
Z
MOVIMIENTO DE LA CINTA
a W
q
- 51 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Fig. 10 : Transicin en un autmata de
pila.
El autmata pasa de la configuracin a la configuracin , es
decir pasa aun estado q,avanzando lacabeza delecturaal siguiente smboloy procediendo
a realizar determinadas sustituciones en la cabeza de la pila (fig. 11).
Fig. 11 : Transicin en un autmata de
pila.
14.1 Lenguaje reconocido por un autmata de pila
Se puede definir de dos formas :
a ) El autmata reconoce una cadena de entrada, cuando alcanza el estado final, es
decir el lenguaje reconocido por un autmata de pila se puede expresar de la siguiente
forma :
b ) El autmata reconoce la cadena cuando la pila queda vacia, independientemente
del estado al que se llegue, entonces el lenguaje reconocido por el autmata es :
Se puede demostrar que ambas definiciones de L(AP), son equivalentes, en el sentido
de que la clase de lenguajes aceptados por los autmatas de pila es la misma en ambos
casos.
(q, aW, z ) o (q, W, ) y o
CINTA
PILA
CONTROL DE ESTADOS
MOVIMIENTO DE LA CINTA
a W
q
L(AP)
= {
W/WeL
*
y (q W
0,
, Z
0
) ( q
f
,
, )} io
L(AP)
= {
W/WeL
*
y (q W
0,
, Z
0
) ( q,
, )}
- 52 -
AUTMATAS DE
PILA
14.1.1 Teorema
Para toda gramtica libre de contexto G , existe un reconocedor constituido por un
2
autmata de pila R
AP
, tal que el lenguaje generado por la gramtica L(G ) es reconocido
2
por el autmata R
AP
.
L(G )=L(R
2 AP
)
14.1.2 Teorema
Para todo reconocedor constituido por un autmata de pila R
AP
, existe una gramtica
libre de contexto G , tal que el lenguaje reconocido por el autmata es igual al generado
2
por la gramtica.
L(R )=L(G )
AP 2
14.1.3 Corolario
De los dos teoremas anteriores se deduce que el conjunto de lenguajes reconocidos
por los autmatas de pila, son los lenguajes de tipo 2 y que todo lenguaje de tipo 2 se puede
reconocer por un autmata de pila. Tambin se puede deducir que existe una correspon-
dencia entre las gramticas, los lenguajes y los autmatas de tipo 2.
Ejemplo 14.1.4
Construir un autmata de pila que reconozca el lenguaje .
Solucin : Se puede definir un autmata de pila, P, de la forma:
donde se define :
L =
{
0
n
1
n
/n > 0}
P =({ q
0
, q
1
, q
2
},{ 0,1},{ Z,0}, , q
0
, Z,
{
q
0
})

( q
0
, 0, Z) ( q
1
, 0Z)
( q
1
, 0, 0) ( q
1
, 0, 0)
( q
1
, 1, 0) ( q
2
, )
( q
2
, 1, 0) ( q
2
, )
- 53 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
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
q ,Z
0
q ,0Z
1
- q ,
0
q ,0
1
q ,00
1
q ,
-
2
q ,0
2
- q ,
-
2
q ,Z
2
- - q ,
0
Por ejemplo para reconocer la sentencia 0011 del lenguaje, se realizan las siguientes
transiciones :
(q ,0011,Z) (q ,011,0Z) (q ,11,00Z) (q ,1,0Z) (q , ,Z)
(q ,,)
0 1 1 2 2 0
En el caso general de i 1, las transiciones son las siguientes :
(q ,00 11 ,Z) (q ,0 11 ,0Z) (q ,11 ,00 Z) (q ,1 ,0 Z) (q , ,Z)
(q ,,)
0
i i
1
i i
1
i i
2
i i
2 0
y para i=0 la transicin es :
(q ,00 11 ,Z)
(q ,,)
0
i i
0
14.2 Algoritmo de transformacin de una gramtica de tipo 2 en un autmata de
pila
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.
( q
2
, , Z) ( q
0
, )
( q
0
, , Z) ( q
0
, )


>

i

i

- 54 -
AUTMATAS DE
PILA
Sea la gramtica G=(VN,VT,S,P) se desea construir el autmata de pila
AP=(Q, , q ,z, F) que reconozca el mismo lenguaje generado por G. As se puede
0 0
obtener el autmata AP de la siguiente forma:
El vocabulario o alfabeto de entrada del autmata coincide con
el vocabulario terminal VT de la gramtica.
El alfabeto de la pila coincide con la union de los
vocabularios terminal y no terminal de la gramtica.
z = S El smbolo inicial que contiene la pila es el smbolo inicial de la
0
gramtica
Q = {q} El conjunto de estados del autmata tiene un estado nico q
El conjunto de estados finales del autmata de pila est
vacio. El autmata slo se parar si se vacia la pila.
La funcin de transicin se construye de la siguiente forma:
a) Para todo smbolo terminal x se construye la siguiente
relacin que se puede interpretar como:
Saca x de la pila 
Avanza el smbolo x de la cinta 
No escribe nada en la pila 
No cambia de estado 
b) Para toda regla de produccin perteneciente a P se
construye la siguiente relacin que se
puede interpretar como:
No avanza la cinta 
Saca A de la pila 
Mete  en la pila
No cambia de estado 
, L I,
L
=
VT L
I
=
VNVT
F ={ }

( q, x, x) ( q, )
A o
( q, , A) ( q, ) o
o
- 55 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Ejemplo 14.2.1
Sea la gramtica G=(VN,VT,S,P) que representa el manejo de expresiones aritm-
ticas, siendo VN={E,T,F} donde E es la abreviatura de expresin, T la de trmino y F la
de factor. VT={a,+,*,(,)} donde a representa a los identificadores. El smbolo inicial S=E.
Las reglas de produccin son las siguientes:
Construir un autmata de pila que reconozca el mismo lenguaje generado por la
gramtica G.
Solucin: AP=(Q, , q ,z, F) donde
0 0
Q = {q}
q
=q
0
z
=E
0
a) Smbolos terminales
(1)
(2)
(3)
(4)
(5)
b) Reglas de produccin
(6)
(7)
(8)
(9)
E E + T | T
T T*F | F
F
(
E)
|
a
, L I,
= L
{
a ,+, *,
(,)}
={ I a ,+, *,
(,),
E, T, F}
F ={ }
( q, a , a ) ( q, )
( q,+,
+) (
q, )
( q, *, *) ( q, )
( q,(,() ( q, )
( q,),)) ( q, )
( q, , E) ( q, T)
( q, , E) ( q, E + T)
( q, , T) ( q, F)
( q, , T) ( q, T*F )
- 56 -
AUTMATAS DE
PILA
(10)
(11)
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.
Aqu se alcanza una configuracin imposible. El smbolo terminal en la cima de la
pila no coincide con el smbolo terminal de la cinta. Se debe retroceder hasta donde se
eligi la ltima regla alternativa que fue la (10). Se observa que hay otra regla la (11).
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).
Se alcanza una configuracin imposible. Se retrocede y se aplica la regla (11) en vez
de la (10).
Se alcanza una configuracin imposible. Se retrocede hasta donde se aplic la regla
(6) y ahora se utiliza la regla (7). Estamos otra vez en la configuracin inicial.
Se alcanza una configuracin imposible y se retrocede hasta donde se aplic la regla
(10) y ahora se usa la (11).
Se alcanza una configuracin imposible y se retrocede hasta donde se aplic la regla
(10) y ahora se usa la (11).
( q, , F) ( q,
(
E))
( q, , F) ( q, a )
(q, a + a , E)

(6)
(q, a + a , T)

(8)
(a , a + a , F)

(10)
(a , a + a ,
(
E)
)
(q, a + a , F)

(11)
(q, a + a , a )

(1)
(q,
+
a , )
(q, a + a , T)

(9)
(q, a + a , T*F )

(8)
(q, a + a , F*F )

(10)
(q, a + a ,
(
E)*F)
(q, a + a , F*F )
(11)
(q, a + a , a*F )
(1)
(q,
+
a , *F)
(q, a + a , E)

(7)
(q, a + a , E + T)

(6)
(q, a + a , T + T)

(8)
(q, a + a , F + T)

(10)
(q, a + a ,
(
E)
+
T)
(q, a + a , F + T)

(11)
(q, a + a , a + T)

(1)
(q,
+
a ,
+
T)

(2)
(q, a , T)

(8)
(q, a , F)

(10)
(q, a ,
(
E))
- 57 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
La cadena a+a ha sido reconocida por el autmata.
Ejercicio 14.2.2
Sea la gramtica G=(VN,VT,S,P) que representa el manejo de expresiones tipo Lisp,
siendo VN={S,R} y VT={x,(,), , }. Las reglas de produccin son las siguientes:
Determinar el lenguaje que genera y construir el autmata que lo reconoce. Poner
un ejemplo de reconocimiento de una cadena del lenguaje.
(q, a , F)

(11)
(q, a , a )

(1)
(q,
, )
S x
S
(
SR
R , SR
R )
- 58 -
AUTMATAS FINITOS
CAPTULO 15: AUTMATAS FINITOS
Los autmatas finitos reconocen los lenguajes regulares, o de tipo 3 y se pueden
representar intuitivamente por una cinta y una cabeza de lectura (fig. 12).
Fig. 12 : Esquema intuitivo de un autmata
finito.
La cinta de entrada, slo contiene smbolos de un determinado alfabeto, y se mueve
en una sla direccin.
El control de estados, determina el funcionamiento del autmata.
Una sentencia de un lenguaje determinado, colocada en la cinta, y leda por el
autmata finito, es reconocida por ste, si el control de estados llega a un estado final.
15.1 Definicin formal de autmata finito
Se puede definir como una quntupla donde :
E = {conjunto finito de smbolos de entrada, que constituye el vocabulario}
Q = {conjunto finito de estados}
es la funcin de transicin
,esel estado inicial
es el conjunto de estados finales
0 0 0 0 0 1 1 1 1 1 1
1
1 1 1
CINTA
MOVIMIENTO A IZQUIERDA
CELDA
CONTROL DE
ESTADOS
AF =
(
E, Q, f, q
1
, F)
f:E
*
Q Q
q
1
e Q
F c Q
- 59 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Se entiende por configuracin de un autmata finito, a un par de la forma (q, W)
donde q, es el estado actual, y W la cadena que queda por leer en ese instante. Segn la
definicin anterior, se puede afirmar que la configuracin inicial de un autmata finito es
el par (q , t) siendo t la sentencia o cadena de entrada a reconocer. La configuracin final
1
se representa por el par (q , ) donde q
i i
F, y indica que no queda nada por entrar de la
cinta.
Un movimiento de un autmata finito, puede definirse como el trnsito entre dos
configuraciones, y se representa por (q, aW) (q,W) y se debe de cumplir que f(q,a)=q.
15.2 Lenguaje reconocido por un autmata finito
Cuando un autmata transita a una configuracin final partiendo de la configuracin
inicial, en varios movimientos, se dice que se ha producido aceptacin o reconocimiento
de la cadena de entrada. Es decir que dicha cadena, pertenece al lenguaje reconocido por
el autmata.
Por el contrario, cuando el autmata finito no es capaz de llegar a un estado final, se
dice que el autmata no reconoce dicha cadena y que por tanto no pertenece al lenguaje.
El lenguaje reconocido por un autmata finito, es:
15.2.1 Teorema
Para toda gramtica regular, G , existe un autmata finito, AF, tal que el lenguaje
3
reconocido por el autmata finito es igual al lenguaje generado por la gramtica.
L(AF) = L(G )
3
15.2.2 Teorema
Para todo autmata finito, AF, existe una gramtica regular, G , tal que el lenguaje
3
generado por la gramtica es igual al lenguaje reconocido por el autmata finito
L(G ) = L(AF)
3
15.2.3 Corolario
Segn el teorema 15.2.1, se tiene que y por el teorema 15.2.2,
, luego {L
regulares
} = {L(AF)} = {L(G )}
3

L(AF)
= {
t/t e E
*
,
(
q t
1,
) ( q
i
, ), q
i
e F}
{L(G3)} { c L(AF)}
{L(AF)
{ c
L(G3)}
- 60 -
AUTMATAS FINITOS
La forma habitual de representar los autmatas finitos es mediante un grafo o dia-
grama de estados (fig. 13), donde los nodos son los estados y las ramas estn marcadas
con los smbolos del alfabeto de entrada. Las ramas se construyen segn la funcin de
transicin, as debe de cumplir .
Fig. 13 : Transicin entre dos
estados.
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 donde ;
y la funcin f viene dada por la tabla siguiente y el conjunto de estados finales es F={q }
3
f a b
q
1
q
2
q
4
q
2
q
2
q
3
q
3
q
4
q
3
q
4
q
4
q
4
Determinar el lenguaje que reconoce, representar el diagrama de Moore, e indicar la
expresin regular que representa al lenguaje.
f(q
1
, a )

q
2
a
q q
1 2
A
1
=
(
E, Q, f, q
1
, F) E =
{
a , b} { } Q =
{
q
1
, q
2
, q
3
, q
4
}
- 61 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Solucin : Se construye el diagrama de Moore, colocando en primer lugar todos los
estados dentro de crculos, marcando con doble crculo el estado final. El estado inicial se
indica con una flecha que lo seala con la palabra INICIO encima. Para construir las ramas,
nos situamos en el primer estado de la tabla de transiciones y se observa que f(q ,a)=q ,
1 2
entonces se traza una flecha entre q yq, apuntando a q , y se coloca encima de la flecha
1 2 2
el smbolo del vocabulario de entrada a. De igual forma se recorre la tabla de transiciones
para cada estado y entrada completndose el diagrama de Moore.
Fig. 14 : Diagrama de Moore del ejemplo
15.2.4
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 :
La expresin regular que denota el lenguaje es a b o tambin aa bb .
+ + * *
INICIO a
a
b
b
a
b
q q
q
q
q
1 2 3
4
a , b
L(A
1
)
= {
ab , aab ,

,
abbb ,

,
aabb ,

} L(A
1
)
= {
a b
n m
/n > 1m > 1}
- 62 -
AUTMATAS FINITOS
Ejemplo 15.2.5
Sea el autmata finito donde E = {0,1} , y f se
define por la tabla siguiente, y F={q }.
2
f01
q
1
q
4
q
2
q
2
q
3
q
4
q
3
q
4
q
2
q
4
q
4
q
4
Construir el diagrama de Moore, y determinar el lenguaje que reconoce, denotndolo
con su expresin regular.
Solucin : Se construye el diagrama de Moore de forma anloga al ejemplo anterior
(fig. 15).
El lenguaje generado es el siguiente :
La expresin regular .
A
2
=
(
E, Q, f, q
1
, F) Q =
{
q
1
, q
2
, q
3
, q
4
}
L(A
2
)
= {
1,101,10101,}
={
1(01)/
n
n > 0}
1(01)
*
INICIO
q
1
q
2
q
3
q
4
0,1
1
0
1
1
0
0
- 63 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Fig. 15 : Diagrama de Moore del ejemplo
15.2.5.
Ejemplo 15.2.6
Sea el autmata finito A = ( E, Q, f, q , F) donde E = {a,b,c}, Q = {q
,q,q,q,q},
3 1 1 2 3 4 5
f se representa por la tabla siguiente y F={q ,q}.
2 4
Representar el diagrama de Moore, determinar el lenguaje que reconoce, y denotarlo
con una expresin regular.
f abc
q
1
q
2
q
3
q
5
q
2
q
5
q
5
q
5
q
3
q
5
q
5
q
4
q
4
q
5
q
5
q
5
q
5
q
5
q
5
q
5
Solucin : El diagrama de Moore se construye al igual que en los ejemplos anteriores
(fig. 16).
El lenguaje generado es L(A )={a,bc}, se puede denotar con la expresin regular
3
a | bc.
Fig. 16 : Diagrama de Moore del ejemplo 15.2.6.
INICIO
q
q
q
q q
a
a,b,c
a,b,c
c
b
c
a,b
a,b,c
1
2
3
4
5
- 64 -
AUTMATAS FINITOS
Ejemplo 15.2.7
Seaelautmata ,dondefvienedada
por la tabla siguiente.
f 1 2 3
q
1
q
1
q
1
q
2
q
2
q
3
q
3
q
3
q
3
q
3
q
3
q
3
Determinar el diagrama de Moore, el lenguaje que genera y la expresin regular que
lo describe.
Solucin : El diagrama de Moore se construye al igual que en los ejemplos anteriores
(fig. 17).
El lenguaje reconocido es el siguiente :
Fig. 17 : Diagrama de Moore del ejemplo
15.2.7.
La expresin regular es .
Ejemplo 15.2.8
Construir un autmata finito que reconozca un identificador de un lenguaje de pro-
gramacin, definido en EBNF de la forma :
A
4
=
(
E =
{
1,2,3}
,
Q =
{
q
1
, q
2
, q
3
}
,
f, q
1
, F =
{
q
2
})
L(A
4
)
= {
3,13,113,1113,

,123,12223,

,213,21113,

}
L(A
4
)
=

'

1
(n
1
) ( s
2
n
2
) ( s
1
n
3
) ( s
2
n
4
)
3/n
1
, n
2
,> 0

;

INICIO
q
q q
1
2
3
1,2
3 1,2,
3
1,2,
3
(1 | 2)
*
3
- 65 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
<identificador> ::= <letra> {<letra>|<dgito>}
<letra> ::= a|b|...|z
<dgito> ::= 0|1|2|...|9
Solucin : Este ejemplo es inverso a los anteriores, pues se da un lenguaje y se pide
el autmata que lo reconoce. En primer lugar se construye un diagrama de Moore, de tal
forma que a partir del estado inicial, despus de leer una letra, acepte letras o dgitos de
forma variable, y cuando encuentre un carcter diferente de letra o dgito alcance el estado
final. El diagrama de Moore es el que se muestra en la figura 18.
Fig. 18 : Diagrama de Moore del ejemplo
15.2.8.
$ representa a todos los caracteres diferentes de letra o dgito.
El autmata finito se deduce del diagrama de Moore y es el siguiente :
donde f se define por :
f <letra> <dgito> $
q
0
q
1
-
-
q
1
q
1
q
1
q
2
q
2
-
-
-
15.3 Clasificacin de los autmatas finitos
Cuando se defini autmata finito, la funcin , es en general no
determinista. As en funcin de f, se hablar de autmatas finitos deterministas AFD y
autmatas finitos no deterministas AFND.
INICIO
letra
letra, dgito
$
q q q
0
1 2
AF =
(
E =
{
a , b,

,
z,0,1,

9,$}
,
Q =
{
q
0
, q
1
, q
2
}
,
f, q
0
, F =
{
q
2
})
f:E
*
Q Q
- 66 -
AUTMATAS FINITOS
Un autmata finito no determinista AFND se caracteriza por la posibilidad de que
dada una entrada e en un estado q , se pueda pasar a un estado q ,q,...,q sin saber a ciencia
i j k n
cierta, a cual de esos estados pasar. Existiendo la misma probabilidad de que pase a
cualquiera de dichos estados.
15.3.1 Autmatas finitos no deterministas
La definicin de autmata finito no determinista AFND coincide con la de autmata
finito :
con la salvedad de que es no determinista.
Ejemplo 15.3.1.1
Sea el autmata finito no determinista donde E={a,b},
, y la funcin f viene dada por la siguiente tabla :
f a b
q
1
{q ,q }
2 3
q
2
{q ,q }
2 4
q
3
q
3
q
4
q
4
q
4
Determinar el lenguaje que reconoce, y dar su expresin regular.
Solucin : El diagrama de Moore se construye al igual que en los ejemplos anteriores
de autmatas finitos, con la salvedad de que para una entrada a un estado puede salir ms
de una flecha de un determinado estado (fig. 19).
El lenguaje reconocido es el siguiente :
o tambin
AFND =
(
E, Q, f, q F
1,
)
f:E xQ
*
Q
AFND =
(
E, Q, f, q F
1,
)
Q =
{
q
1
, q
2
, q
3
, q
4
} F =
{
q
4
}
i
i
i
a (b b
*
| a b
*
)a
*
a (b
*
| a
*
)ba
*
- 67 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Fig. 19 : Diagrama de Moore del ejemplo
15.3.1.1.
15.3.2 Autmatas finitos deterministas
Un autmata finito determinista AFD es un caso particular de los autmatas finitos,
en el que la funcin de transicin no presenta ningna ambigedad en las transiciones de
estados para una entrada dada.
Un autmata finito determinista es una quntupla AFD=(E, Q, f, q , F) donde la
1
funcin es determinista.
15.3.3 Teorema sobre la transformacin de AFND en AFD
El teorema dice as : "Para todo autmata finito no determinista AFND=(E, Q, f, q ,
1
F) se puede construir un autmata finito determinista AFD=(E, Q, f, q, F) tal que el
1
lenguaje reconocido por el autmata finito determinista AFD coincida con el lenguaje
reconocido por el autmata finito no determinista AFND, es decir L(AFD) = L(AFND)".
Demostracin :
Se determina en primer lugar Q que es el conjunto de las partes del conjunto de
estados Q.
Q = P(Q) = { conjunto de las partes de Q }
q
q
q
q
1
2
3
4
INICIO
a
b
a
b
a
b
a
f:E
*
Q Q
- 68 -
AUTMATAS FINITOS
El cardinal de Q o nmero de estados del conjunto Q es :
cardinal (Q)= 2
cardinal(Q)
Al estado de Q que corresponde a {q ,q ,...q } se denotar por [q ,q ,...q ] es decir que se
a b l a b l
define f de la forma :
f(e,[q ,q ,...q ])=[q ,q ,...q ] si y slo si f(e,{q ,q ,...q })={q ,q ,...q }
a b l m n k a b l m n k
Es decir se calcula f(e,q) aplicando f a cada estado q de los que figuran en q y
haciendo la unin de todos los resultantes.
q =[q ]
1 1
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 ,
f(x,q ) F si y solo si f(x,q ) contiene un estado (o varios) q
1 1 f
F, y teniendo en cuenta
la definicin de F esto ser evidentemente cierto si se demuestra que :
f(x,q )=[q ,...,q ] si y slo si f(x,q )={q ,...,q }
1 a l 1 a l
Tal demostracin puede hacerse por induccin sobre la longitud de x : para longitud
de x nula, , es inmediato puesto que f( ,q )=q =[q ], y f( ,q )={q }. Supngase
1 1 1 1 1
que es cierto para longitud de x <= 1; entonces para se tiene que
f(xe,q )=f(x,q )
1 1
Pero por hiptesis de induccin :
f(x,q )=[q ,...,q ] si y slo si f(x,q )={q ,...,q }
1 a l 1 a l
y por definicin de f
f(e,[q ,...,q ])= [q ,q ,...q ] si y slo si f(e,{q ,...,q })={q ,q ,...q }
a l m n k a l m n k
Por tanto
f(x,q )=[q ,...,q ] si y slo si f(xe,q )={q ,...,q }
1 m k 1 m k
con lo que queda demostrado.
q e Q/q
f
e qyq
f
e F
x e E
*
e
e
x = i i i
e e E
- 69 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Ejemplo 15.3.3.1
Sea el autmata finito no determinista del ejemplo 15.3.1.1, determinar un autmata
finito determinista equivalente.
Solucin : Siguiendo la construccin del teorema 15.3.3, el AFD tendr en un
principio 2 estados, es decir Q conjunto de las partes deQ tiene en un principio 16 estados.
4
Tambin se define el estado inicial y el conjunto de estados finales F.
Q={ ,[q ],[q ],[q ],[q ],[q q ],...,[q q q q ]}
1 2 3 4 1 2 1 2 3 4
q =[q ]
1 1
F={[q ],[q q ],[q q ],[q q ],[q q q ],...,[q q q q ]}
4 1 4 2 4 3 4 1 2 4 1 2 3 4
y f se construye a partir de f resultando la siguiente tabla :
f a b
[ q ] [ q
q ]
1 2 3
[ q ]
[ q
q ]
2 2 4
[ q ]
[ q ]
[ q ]
3 3 4
[ q ]
[ q ]
4 4
[ q q ] [ q
q ] [ q q ]
1 2 2 3 2 4
[ q q ] [ q
q ] [ q ]
1 3 2 3 4
[ q q ] [ q
q q ]
1 4 2 3 4
[ q q ] [ q
] [ q q ]
2 3 3 2 4
[ q q ] [ q
] [ q q ]
2 4 4 2 4
[ q q ] [ q
q ] [ q ]
3 4 3 4 4
[ q q q ] [ q
q ] [ q q ]
1 2 3 2 3 2 4
[ q q q ] [ q
q q ] [ q q ]
1 2 4 2 3 4 2 4
[ q q q ] [ q
q q ] [ q ]
1 3 4 2 3 4 4
[ q q q ] [ q
q ] [ q q ]
2 3 4 3 4 2 4
[ q q q q ] [ q
q q ] [ q q ]
1 2 3 4 2 3 4 2 4
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:
[ ], [ ], [ ], [ ], [ ], [ ], [ ], y [ ] por no aparecer
dentro de la tabla.
i
iii
i
i
i

q
2
q q
1 2
q q
1 3
q q
1 4
q q q
1 2 3
q q q
1 2 4
q q q
1 3 4
q q q q
1 2 3 4
- 70 -
AUTMATAS FINITOS
[ ] por no aparecer en la tabla como transicin de un estado eliminado ante-
riormente.
[ ] por aparecer en la tabla como transicin de un estado eliminado anteriormente,
y tambin en su propio estado, no es accesible por no aparecer en otro estado.
Evidentemente [ ] nunca puede eliminarse como estado, por ser el estado inicial.
Entonces f puede resumirse segn la tabla :
f a b
[ q ] [ q
q ]
1 2 3
[ q ]
[ q ]
[ q ]
3 3 4
[ q ]
[ q ]
4 4
[ q q ]
[ q ] [ q
q ]
2 3 3 2 4
[ q q ]
[ q ] [ q
q ]
2 4 4 2 4
El estado vacio [ ] no puede eliminarse en este caso, pues es accesible desde [ ] y
[].
De los 16 estados posibles slo han quedado 6, con los que se construye el diagrama
de Moore de la figura 20.
q q q
2 3 4
q q
3 4
q
1
iii
i
i
i q
1
q
4
- 71 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Fig. 20 : Diagrama de Moore del ejemplo
15.3.3.1.
Se puede comprobar que el lenguaje reconocido por el AFD es el mismo que el
reconocido por el AFND del ejemplo 15.3.1.1. As el lenguaje reconocido por el AFD es :
La ltima igualdad se ha obtenido teniendo en cuenta que:
q
1
INICIO
[ ]
q
4
[ ]
q
3
[ ]
[q q ]
2 3
[q q ]
2 4
a
a
b
b
b
a
a
b
a
b
a , b
abb
*
| abb aa
* *
| aaa ba
* *
= abb
*
( | i aa
*
)
|
aaa ba
* *
= abb a
* *
| aaa ba
* *
= ab ba
* *
| aaa ba
* *
= a (b
*
| aa
*
)ba
*
= a (b
*
| a
*
)ba
*
b
*
| aa
*
= b
*
| | i aa
*
= b
*
| a
*
- 72 -
AUTMATAS FINITOS
15.4 Algoritmo de transformacin de una gramtica de tipo 3 en un autmata
finito
Sea una gramtica de tipo 3 o regular G=(VT,VN,S,P) y se desea obtener un autmata
finito AF=(E,Q,f,q ,F) que reconozca el lenguaje generado por la gramtica. El autmata
1
obtenido, en general ser no determinista.
Solucin: Se determinan los distintos elementos del autmata de la siguiente forma:
E=VT
Q=VN Acada smbolo no terminal de lagramtica se le asocia
unestado del autmata. Adems se introduce un nuevo
estado, denominado q , que ser el nico estado final
f
del autmata.
q =S
1
F={q }
f
La funcin de transicin f se determina a partir de la forma de las reglas de produccin
P, de la manera siguiente:
a) Para reglas de la forma A a B se obtiene f(A,a)=B siendo A y B los estados
correspondientes a los no terminales A y B.
Fig. 21 : Diagrama de Moore de
f(A,a)=B
b) Para reglas de la forma A a se obtiene f(A,a)=q .
f
Fig. 22 : Diagrama de Moore de
f(A,a)=q
f
{ . q
f
}

a
A B

a
A q
f
- 73 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Ejemplo 15.4.1
Sea la gramtica de tipo 3 siguiente :
G = (VN={A,S}, VT={a,b}, S, P)
donde P son las reglas :
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 donde
E={a,b}, Q={A,S,X}, q =S, F={X}, y f viene dada por la tabla siguiente :
1
f a b
S {S,A} -
A - {A,X}
X
-
-
El diagrama de Moore se representa en la figura 23.
Fig. 23 : Diagrama de Moore del ejemplo
15.4.1
El lenguaje que reconoce :
El AFD se define como AFD=(E, Q,f, q , F) donde f viene dado por la tabla :
1
S aS
S aA
A bA
A b
AFND =
(
E, Q, f, q
1
, F)
S A X
a
a
b
b INICIO
a ab b
* *
= aa bb
* *
= a b
+ +
- 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]
Se eliminan de la tabla los estados inaccesibles desde el estado inicial [S], y se
representa el diagrama de Moore de la figura 24.
El lenguaje que reconoce es :
iii
i
i
ii
i
i

aa bb
* *
= a b
+ +
- 75 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Fig. 24 : Diagrama de Moore AFD del ejemplo
15.4.1
15.5 Transformacin de una expresin regular en un autmata finito
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.
Para la transformacin de una expresin regular en un autmata finito, se definirn
en un principio las equivalencias entre las expresiones regulares bsicas y sus autmatas
finitos. Posteriormente se mostrar la construccin de Thompson que genera
automticamente un autmata finito a partir de una o varias expresiones regulares de
cualquier complejidad.
[S]
[S,A]
[A,X]
a
b
a
b
a
b
a,b
INICIO
[S]
[S,A]
[A,X]
a
b
a
a
b
INICIO
- 76 -
AUTMATAS FINITOS
15.5.1 Equivalencia entre expresiones regulares bsicas y autmatas finitos
Se muestran equivalencias entre expresiones regulares simples y autmatas finitos
expresados mediante un diagrama de Moore
15.5.1.1 Expresin regular
Fig. 25 : Diagrama de Moore
de
15.5.1.2 Expresin regular a
Fig. 26 : Diagrama de Moore de
a
15.5.1.3 Expresin regular a
*
Fig. 27 : Diagrama de Moore de
a
*
i
q
f
INICIO
q
i
q
f
INICIO
q
a
q
f
INICIO a
- 77 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
15.5.1.4 Expresin regular a
+
Fig. 28 : Diagrama de Moore de
a
+
15. 5. 1. 5 Expresi n regular ab
Fi g. 29 : Di agrama de Moore de
ab
Fig. 30 : Otro di agrama de Moore de
ab
15.5.1.6 Expresin regular (a b)*
Fig. 31 : Diagrama de Moore de
(ab)
*
q
f
INICIO
q
a
a
|
q
f
INICIO
q
q
q
1
2
a
b
|
q
f
INICIO
q
a ,b
|
|
q
f
INICIO
a , b
|
- 78 -
AUTMATAS FINITOS
15.5.1.7 Expresin regular (ac b)*
Fig. 32 : Diagrama de Moore de (ac
b)
*
15.5.1.8 Expresin regular (acd b)*
Fig. 33 : Diagrama de Moore de
(acdb)
*
15.5.2 Construccin de Thompson
La construccin de Thompson construye un AFND a partir de cualquier expresin
regular. La herramienta lex utiliza esta construccin para obtener en sucesivos pasos un
AFD (Aho et al., 1986, captulo 3).
Supongamos que N(s) y N(t) son AFND para las expresiones regulares s y t.
a) Para la expresin regular stse construye el AFND N(s t) que se muestra en la figura
34.
Fig. 34 : Construccin de Thompson para N(s
t)
b) Para la expresin regular st se construye el AFND N(st) que se muestra en la figura 35.
|
INICIO
b
a
c
q
f
q
|
|
INICIO
b
a
q
f
1
q
2
q
c
d
|
|
|
INICI
O
qj qk
ql qm
qf
N(s)
N(t)
q
|
- 79 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Fig. 35 : Construccin de Thompson para
st
c) Para la expresin regular s se construye el AFND N(s ) que se muestra en la figura 36.
* *
Fig. 36 : Construccin de Thompson para
s
*
d) Para la expresin regular (s) se utiliza directamente N(s)
Ejemplo 15.5.2.1
Utilizando la construccin de Thompson construir un autmata finito AF que reco-
nozca la expresin regular (0 1) 0 (01) (01)
*
Solucin:Sedescompone laexpresinregularensubexpresiones, siguiendolaprecedencia
de operadores, tal y como se muestra en la figura 37.
Fig. 37 : Descomposicin sintctica de la expresin
regular
Comenzandoporr1,r2,... r7sellegaqueel AFNDdelaexpresin r7esel representado
en la figura 38.
q1
q2 q3 N(s) N(t)
INICIO
q1 q2 q3 N(s)
INICIO
qf
|||
r17
r12
r16
r11
r10
r7
r6 r5
r4 *
r 3 ( )
r1 | r2
0 1
r15
r13 r14 |
0 1
(
)
- 80 -
AUTMATAS FINITOS
Fig. 38 : Construccin de Thompson para
r
7
Continuando se puede observar que para la expresin r17 el AFND es el que se
presenta en la figura 39.
Fig. 39 : Construccin de Thompson para (0|1) 0(0|1)(0|
1)
*
15.6 Minimizacin de estados de un AFD
Se defini anteriormente que dos AF son equivalentes si reconocen el mismo len-
guaje. En este apartado se trata de encontrar un AF equivalente en forma mnima. Es
importante poder saber si un AF est en forma mnima, y si no lo est hallar un AF
equivalente en forma mnima. Se puede demostrar que siempre existe una forma mnima
de un AF (Hopcroft y Ullman, 1979, pp. 67-68). Para determinar el AF en forma mnima
no es preciso realizar infinitos ensayos con cadenas de entrada. Existen algoritmos para
minimizar AF, es decir, hallar otro AF en forma mnima equivalente.
Algoritmo 15.6.1
Entrada. Un autmata finito determinista A=(E,Q,f,q ,F).
0
Salida. Un autmata finito determinista A=(E,Q,f,q,F) que acepta el mismo
0
lenguaje que A, y que tiene el menor nmero de estados posible.
INICIO
0 1
2 3
4 5
6 7 8
0
1
0
INICIO
0 1
2 3
4 5
6 7 8
0
1
0
0
1
0
1
9 10
11
12
13
14 15
16 17
18
- 81 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Metodo. El algoritmo para minimizar el nmero de estados de un AFD funciona
encontrando todos los grupos de estados que pueden ser diferenciados por una cadena de
entrada. Cada grupo de estados que no puede diferenciarse se fusiona entonces en un nico
estado. El algoritmo opera manteniendo y refinando una particin del conjunto de estados.
Cada grupo de estados dentro de la particin est formado por estados que an no han sido
distinguidosunos de otros, ytodos lospares de estadosescogidos de entre gruposdiferentes
han sido considerados distinguibles por una entrada.
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.
2. Se determina una nueva particin
nueva
a partir de la particin anterior , con el
siguiente procedimiento :
FOR cada grupo G de DO
BEGIN
Particin de G en subgrupos tales que dos estados q yq de G estn en el
i j
mismo subgrupo si, y slo si, para todos los smbolos de entrada e, los
estados q yq tienen transiciones en e hacia estados del mismo grupo de
i j
;
/* en el peor caso, un estado estar slo en un subgrupo */
sustituir G en
nueva
por el conjunto de todos los subgrupos formados;
END
3. Se realizan las siguientes comprobaciones.
IF
nueva
= THEN
BEGIN
final
:= ;
GOTO 4; /* Ir al paso 4 */
END
ELSE
H
H H
H
H
H
H H
H H
- 82 -
AUTMATAS FINITOS
BEGIN
:=
nueva
;
GOTO 2; /* Volver al paso 2 */
END
4. Se escoge un estado en cada grupo de la particin
final
como representante de
este grupo.
Los representantes seran los estados reducidos Q de A. Sea un estado q repre-
i
sentante, y sea una entrada a que produce una transicin de q aq en A. Sea q el
i j k
representante del grupo de q (q puede ser q ). Entonces A tiene una transicin desde q
j k j i
aq con la entrada a. Sea el estado inicial q de A el representante del grupo que contiene
k 0
al estado inicial q de A, y sean los estados finales F de A los representantes que estn
0
en F. Se puede observar que cada grupo de
final
consta nicamente de estados en F o no
tiene ningn estado en F.
5. Se eliminan los estados pasivos q de Q, es decir estados que no son finales, y
p
que tienen transiciones hacia ellos, pero no desde ellos hacia otros. Todas las transiciones
aq desde otros estados se convierten en indefinidas. Tambin se eliminan los estados
p
inaccesibles de Q, es decir todos los estados que no se pueden alcanzar desde el estado
inicial. Se obtiene Q y la funcin f.
Ejemplo 15.6.2
Sea el autmata finito determinista A=(E,Q,f,q ,F),
1
donde E={a,b},
Q={q ,q ,q ,q ,q }, F={q }, y f viene dada por la tabla :
1 2 3 4 5 5
f a b
q
1
q
2
q
3
q
2
q
2
q
4
q
3
q
2
q
3
q
4
q
2
q
5
q
5
q
2
q
3
Se desea determinar un autmata equivalente con un nmero de estados mnimo.
Solucin
H H
H
H
- 83 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
(1).La particin inicial consta de dos grupos : (q ) conjunto de estados finales, y
5
(q q q q ) los estados no finales.
1 2 3 4
(2). Se aplica el procedimiento de particin a cada grupo. El grupo (q ) consta de un
5
slo estado, y no se puede dividir ms, se coloca directamente en
nueva
. El otro grupo
(q q q q ), con la entrada a tiene una transicin a q , as que todos podran permanecer en
1 2 3 4 2
un mismo grupo en lo que a la entrada a se refiere. Sin embargo, con la entrada b,q,q,
1 2
yq van a miembros del grupo (q q q q ) de
3 1 2 3 4
mientras que q va al grupo (q ). Por lo
4 5
tanto
nueva
, tiene tres grupos :(q q q ), (q )y(q ).
1 2 3 4 5
(3). Como
nueva
no es igual a , se repite el paso (2) con :=
nueva
.
(2). Se aplica el procedimiento de particin a los grupos de que constan de ms de
un estado. Para una entrada a en el grupo (q q q ), no hay divisin, sin embargo para la
1 2 3
entrada b se produce una divisin en (q q )y(q ), puesto que (q q ) tienen una transicin
1 3 2 1 3
aq, mientras que q tiene una transicin a q , que es miembro de un grupo distinto de
3 2 4
(q q q ). Por lo tanto
1 2 3 nueva
, tiene cuatro grupos :(q q ), (q ), (q )y(q ).
1 3 2 4 5
(3). Como
nueva
no es igual a , se repite el paso (2) con :=
nueva
.
(2). Se aplica el procedimiento de particin a los grupos de que constan de ms de
un estado. La nica posibilidad es intentar dividir (q q ). Sin embargo, q yq van al mismo
1 3 1 3
estado q para la entrada a, y al mismo estado q para la entrada b. Por lo tanto
2 3 nueva
, tiene
cuatro grupos :(q q ), (q ), (q )y(q ).
1 3 2 4 5
(3). Como
nueva
es igual a , se va al paso (4) con
final
:= .
(4). Seescoge q como representantedelgrupo (q q ),yq ,q yq comorepresentantes
1 1 3 2 4 5
de los grupos de un slo estado.
(5). El automata con un nmero de estados mnimo A=(E,Q,f,q ,F), donde E={a,b},
1
Q={q ,q ,q ,q }, F={q }, y f viene dada por la tabla :
1 2 4 5 5
f a b
q
1
q
2
q
1
q
2
q
2
q
4
q
4
q
2
q
5
q
5
q
2
q
1
H
H
H
H
H H H H
H
H
H H H H
H
H
H H H H
- 84 -
AUTMATAS FINITOS
En el autmata reducido A, el estado q tiene una transicin al estado q con la
5 1
entrada b, puesto que q es el representante del grupo (q q ) y hay una transicin de q a
1 1 3 5
q con la entrada b en el autmata original. Una modificacin similar se realiza para el
3
estado q y la entrada b. Todas las dems transiciones estn tomadas de f. No hay ningn
1
estado pasivo, y todos los estados son accesibles desde el estado inicial q .
1
Se puede observar que el lenguaje reconocido por los autmatas A y A es (a|b) abb.
*
- 85 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
CAPTULO 16: EJERCICIOS RESUELTOS
Ejercicio 16.1
Dada la gramtica G=(VN={S,A},VT={0,1},S,P) donde P son las producciones :
Determinar :
a) De qu tipo es?
b) Expresar de algn modo el lenguaje que genera.
Solucin :
a) Es una gramtica de tipo 3, donde las reglas de produccin son de la forma : A aB o
tambin A a, donde A,B pertenecen al VN y a pertenece al VT.
b) Se generan algunas sentencias del lenguaje :
S 0A 00A 001S 0010A 00100
S 0A 01S 010A 0100
L(G) = { Cadena que empieza por 0 y termina con dos 0. Entre ellos puede haber un
nindefinidode0y 1,conla restriccindequeno puedehaber dos1seguidos}
Ejercicio 16.2
Definir una gramtica que permita generar todos los nmeros racionales escritos en
decimal con el formato :
<signo> <parte entera> . <parte fraccionaria>
Construir un autmata que reconozca dichos nmeros.
Solucin : Sea la gramtica G = (VN={<racional>, <cadena dgitos>, <dgito>,
<signo>, <vacio>}, VT={0,1,2,3,4,5,6,7,8,9,+,-}, S=<racional>, P), donde las reglas de
produccin P son las siguientes :
S 0A
A 0A
A 1S
A 0

s


- 86 -
EJERCICIOS
RESUELTOS
<racional> <signo><cadena dgitos>.<cadena dgitos>
<cadena dgitos> <dgito><cadena dgitos>
<cadena dgitos> <dgito>
<dgito> 0|1|2|3|4|5|6|7|8|9
<signo> +|-|<vacio>
<vacio>
Fig. 40 : Solucin del ejercicio
16.2
Ejercicio 16.3
Definir una gramtica que permita generar identificadores, es decir secuencias de
letras y dgitos que empiezan siempre por una letra.
Solucin : Seala gramticaG=(VN={<identificador>,<letra>,<resto identificador>,
<dgito>, <vacio>}, VT={a,b,...,A,...,Z,0,1,...,9}, S=<identificador>, P), donde P son las
producciones :
<identificador> <letra><resto identificador>
<letra> a | b | c | ... | z | A | B | C | ... |Z
<resto identificador> <dgito> <resto identificador>
<resto identificador> <letra> <resto identificador>
<resto identificador> <letra>
<resto identificador> <dgito>
<resto identificador> <vacio>
<dgito > 0 | 1 | 2 | 3 | ... |9
<vacio>

i
INICIO
+,-
<dgito>
<dgito>
.
<dgito>
q
q
q
q q
0
1
2
3
4
<dgito>
<dgito>

- 87 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Ejercicio 16.4
Escribir una gramtica que defina el lenguaje .
Solucin : Sea G=(VN={S,B}, VT={a,b}, S, P) y las producciones P de la gramtica
son :
S aB
B bB
B a
Ejercicio 16.5
Escribir una gramtica libre de contexto para un nmero real del lenguaje C++, y
escribir las derivaciones, para las siguientes sentencias:
(a) 251. (e) 14.25E+02
(b) -61. (f) -25.2E-23
(c) -75.25 (g) .23E12
(d) 1.73 (h) .23
Solucin :
<Tipo REAL> <signo> <nmero> <exp>
<Tipo REAL> <signo> <nmero> <exponente>
<Tipo REAL> <signo> <fraccin> <exponente>
<Tipo REAL> <signo> <nmero> <fraccin> <exponente>
<signo> +|-|<vacio >
<nmero> <dgito><nmero>|<dgito>
<fraccin> .< nmero >
<exp> E <signo> <nmero>
<exponente> <exp> | <vacio>
<dgito> 0|1|2|3|4|5|6|7|8|9
<vacio>
b) -61.
< Tipo REAL > <signo> <num> . <exponente>
- < num > . < exponente >
- < dgito > < num > . < exponente >
- < dgito > < num >.
L =
{
ab a
n
/n > 0}

- 88 -
EJERCICIOS
RESUELTOS
- 6 < num >.
- 6 < dgito >.
- 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
Escribir una gramtica libre de contexto para la sentencia de FORTRAN FORMAT.
Supongase que no se admiten constantes definidas con H (Hollerith). Dar las derivaciones
de las sentencias.
(a) 10 FORMAT (I7, F5.1)
(b) 200 FORMAT (E12.5)
(c) 99015 FORMAT (I5/F7.1)
(d) 40 FORMAT (1X,I4,3X,F7.2)
(e) 50 FORMAT (I3,2(F7.2))
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
< formato > SP
< formato > SS
< formato > BN
< formato > BZ
< nmero real > < nmero > . < nmero >
< nmero > < dgito > < nmero >
< nmero > < vacio >
< vacio >

- 92 -
EJERCICIOS
PROPUESTOS
CAPTULO 17: 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
Escribir un ejemplo de lenguaje, gramtica y autmata de tipo 0, pero que no sea de
tipo 1, 2 o 3. No incluido en este texto.
Ejercicio 17.6
Escribir un ejemplo de lenguaje, gramtica y autmata de tipo 1, pero que no sea de
tipo 2 o 3. No incluido en este texto.
- 93 -
LENGUAJES, GRAMTICAS Y
AUTOMATAS
Ejercicio 17.7
Escribir un ejemplo de lenguaje, gramtica y autmata de tipo 2, pero que no sea de
tipo 3. No incluido en este texto.
Ejercicio 17.8
Escribir un ejemplo de lenguaje, gramtica y autmata de tipo 3. No incluido en este
texto.
Ejercicio 17.9
Escribir un autmata que reconozca si un nmero es un real vlido en Pascal estndar
o no.
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
CAPTULO 18: EJERCICIOS DE PROGRAMACIN
Ejercicio 18.1
Escribir un programa que simule el funcionamiento de una mquina de Turing
genrica. El programa pedir al usuario bien por teclado o por fichero los componentes de
la definicin de la mquina de Turing reconocedora de un lenguaje de tipo 0. Dada una
cadena de entrada indicar si pertenece o no al lenguaje.
Ejercicio 18.2
Escribir un programa que simule el funcionamiento de un autmata lineal acotado
genrico. El programa pedir al usuario bien por teclado o por fichero los componentes
de la definicin del autmata lineal acotado reconocedor de un lenguaje de tipo 1. Dada
una cadena de entrada indicar si pertenece o no al lenguaje.
Ejercicio 18.3
Escribir un programa que simule el funcionamiento de un autmata de pila genrico.
El programa pedir al usuario bien por teclado o por fichero los componentes de la defi-
nicin del autmata de pila reconocedor de un lenguaje de tipo 2. Dada una cadena de
entrada indicar si pertenece o no al lenguaje.
Ejercicio 18.4
Escribir un programa que simule el funcionamiento de un autmata finito genrico.
El programa pedir al usuario bien por teclado o por fichero los componentes de la defi-
nicin delautmatafinito reconocedor deunlenguaje detipo 3.Dada unacadena deentrada
indicar si pertenece o no al lenguaje.
Ejercicio 18.5
Escribir un programa que tome como entrada la definicin de un autmata finito no
determinista y escriba como salida un autmata finito determinista equivalente.
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.
(4) Alfonseca M., Sancho J. y Martnez Orga M. (1987). Teora de lenguajes,
gramticas y autmatas. Ediciones Universidad y Cultura.
(5) Alvarez-Ura Alvarez, E. (1974). Algoritmos de Markov y lenguajes de progra-
macin. Dto. de Matemticas. Escuela Tcnica Superior de Ingenieros de Minas.
Universidad de Oviedo.
(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.
(8) Chomsky N. (1959). On certain formal properties of grammars. Information and
Control 2:2, pp. 137-167.
(9) Chomsky N. (1962). Context-free grammars and pushdown storage. Quaterly
Prog. Rept. No. 65, pp. 187-194, MIT REs. Lab. Elect., Cambridge, Mass.
(10) Chomsky N. (1963). Formal properties of grammars. Handbook of Math. Psych.,
Vol. 2, pp. 323-418, John Wiley and Sons.
(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
(13) Conde Snchez C. (1969). Mquinas de Turing y computabilidad. Discurso ina-
gural del ao acadmico 1969-70 en la Universidad de Oviedo. Dto. de
Matemticas. Escuela Tcnica Superior de Ingenieros de Minas. Universidad de
Oviedo.
(14) Cueva Lovelle J.M. (1998). Conceptos bsicos de Procesadores de Lenguaje.
Cuaderno Didctico de Ingeniera Informtica n10. SERVITEC.
(15) Fernndez G. y Sez Vacas F. (1987). Fundamentos de informtica. Alianza.
(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)
(19) Katrib Mora M. (1988). Lenguajes de programacin y tcnicas de compilacin.
Editorial Pueblo y Educacin (Cuba).
(20) Minsky M.L. (1967). Computation: Finite and Infinite Machines. Prentice Hall,
Englewood Cliffs.
(21) Snchez Dueas G. y Valverde Andreu J.A. (2 Edicin, 1989). Compiladores e
intrpretes. Un enfoque pragmtico. Ed. Daz de Santos.
(22) Sanchs Llorca F.J. y Galn Pascual C. (1986). Compiladores. Teora y
construccin. Paraninfo.
(23) Shannon C.E. (1949). The synthesis of two-terminalswitching 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.
(26) Turing A.M. (1936). On computable numbers with an application to the
Entscheidungs-problem. Proc. London Math. Soc. . 2:42, pp 230-265. Una
correccin ibid, 43, pp- 544-546.
- 97 -

You might also like