Automatas Libro Con Respuestas
Automatas Libro Con Respuestas
Automatas Libro Con Respuestas
Manual de prcticas
TEORIA DE LA COMPUTACION
Junio 2010
EJEMPLO DE CONJUNTO.
b
EJEMPLO DE b L.
r L especifica que r no es un elemento del conjunto L
EJEMPLO DE r L.
En un conjunto no se distinguen repeticiones de los elementos {a,b,c,d} = {a,b,c,d, a,c,d} y
el orden no tiene ningn significado {a,b,c,d} = {b,a,d,c}.
Dos conjuntos son iguales si y solo si tienen los mismos elementos.
Conjunto simple: tiene un solo elemento {1}
Conjunto vaco: no tiene elementos y se denota por
Conjunto de los nmeros naturales N = {0, 1, 2, 3,.....,
negativos.
} o conjunto de enteros no
EJEMPLO DE SUB-CONJUNTO
Si A B y B A. todos los elementos de A estn en B y todos los elementos de B estn en
A. Por lo tanto, si A B y B A, tenemos que A = B.
El conjunto vaci(
ACTIVIDADES OBLIGATORIAS
Representar cada uno de los siguientes conjuntos:
2. Si A B donde, A={azul, rojo, negro} y B={naranja, caf, azul, rosa, rojo, blanco,
negro, verde}. Realizar el diagrama correspondiente.
1. Con los conjuntos L1={x, xy} y L2={yx, yy} realice el producto cartesiano.
2. A={0,1,2,3,4,5}; B={2,3,5,9}; C={0,2,4,8}.
Dado los conjuntos anteriores demostrar lo siguiente:
a.
UA =A
b.
A=
c. Si A B entonces A B=A
d. Si A B entonces A UB=A
e. A B=A=AUA
f. AUB=BUA
g. A B=B A
h. AU(BUC)=(AUB) UC
i. A (B C)=(A B) C
j. A (BUC)=(A B)U(A C)
k. A B = B A
l. A - B = B - A
m. A * B = B * A
La manera de representar cada una de las palabras, smbolos o cadenas de caracteres es clasificado y
esta compuesto por varios elementos que sin saber estn ah
INTRODUCCIN
Las cadenas son una secuencia de smbolos, cada uno de esos smbolos pertenece a algn alfabeto, las
palabras y los lenguajes pueden ser variados, existen lenguajes y palabras muy variadas pero que en
esencia quieren expresar lo mismo.
CONTENIDO
Lo que s vera a continuacin tiene dos cosas en comn:
Programas escritos en algn lenguaje de programacin como Pascal, palabras inglesas, secuencia de
smbolos para representar un entero.
1. Primero cada uno esta compuesto por una secuencia de smbolos tomados de una coleccin
finita.
Programas escritos en un lenguaje de programacin como Pascal: el conjunto de smbolos es
una coleccin de identificadores legales de Pascal con una longitud menor o igual que una
constante, palabras clave y palabras reservadas, smbolos especiales y espacios en blanco,
como retorno de carro, carcter de salto de lnea y el espacio manual.
Palabras inglesas: la coleccin finita es el conjunto de letras del alfabeto junto con los smbolos
que se usan para construir palabras en ingles (guin, apstrofo, etc.).
Secuencias de smbolos que se usan para representar un valor entero: son secuencias de
caracteres del conjunto de los dgitos {0,1,2,3,4,5,6,7,8,9}.
2. Segundo, en todos los casos vistos las secuencias de smbolos que constituyen los elementos
en cuestin tienen longitud finita, aunque no existe limitacin en cuanto a la longitud de la misma.
Alfabeto: conjunto no vaci y finito de smbolos. En Pascal, un alfabeto es la coleccin de todos los
smbolos legales de Pascal (identificadores de Pascal, palabras clave y reservadas, caracteres
especiales, etc.).
Ejemplo
,0
Lenguaje vaco( ): es un lenguaje compuesto por ninguna cadena, se denota de la misma forma que el
conjunto vaco
. Este no es el mismo lenguaje que el que consta la cadena vaca { }, ya que el
lenguaje
no tiene elementos y { } tiene un elemento.
Palndromos: cadenas que se leen igual de izquierda a derecha y viceversa. El conjunto de palndromos
sobre el alfabeto {0,1} es un lenguaje infinito. Algunos elementos de este lenguaje son: , 0, 1, 00, 11,
010 y1101011.
Cerradura *: Es necesario tener en cuenta el lenguaje compuesto por todas las cadenas sobre el alfabeto
. Se conoce como cerradura de o lenguaje universal sobre y se denota por *.
Ejemplo:
={1} entonces
={ ,1,11,111,1111,..... }.
para cualquier alfabeto,
ACTIVIDADES OBLIGATORIAS
a. {
b. {a,b,c,d,e,f,g}
c. {repeat}
d. { }
e. {i,n,t,e,g,e,r}
f. { ,-, ;}
g. {begin}
h. {end}
i. {0,1}
j. { ,/,*,-,+}
1. Representar la secuencia de smbolos que se usa para formar palabras.
2. Representar el alfabeto que se usa para lenguajes de programacin como c, c++ y Pascal.
ACTIVIDADES SUGERIDAS
Mencione por lo menos 3 ejemplos de cadena, alfabeto, lenguaje y palndromos
RECURSOS PARA AMPLIAR EL TEMA
BIBLIOGRAFIA
AUTOEVALUACION
, no tiene smbolos | |=
ejemplo:
si w=122 sobre el alfabeto
= {1,2}, se tiene
w0=
w1=122
w2=122122
w3=122122122
y as sucesivamente. wi es la potencia i-sima de w.
Igualdad de cadenas: si w y z son palabras w es igual a z, si tienen la misma longitud y los mismos
smbolos en la misma posicin. Se denota mediante w=z.
ACTIVIDADES OBLIGATORIAS
? Y Por que?
1. Y3 =
2. |Y| =
3. |X| =
4. W Z X=
5. W3=
6. Z0=
7. Z Y=
8. W Y Z Y X Y=
ACTIVIDADES SUGERIDAS
Anotar en su libreta ejemplos de los conceptos mencionados anteriormente y analizar cada ejemplo.
RECURSOS PARA AMPLIAR EL TEMA
BIBLIOGRAFIA
AUTOEVALUACION
. Obtener
Para esto se vern los pasos de un tpico traductor de lenguajes, como un compilador para determinado
lenguaje de programacin.
Una de las tareas fundamentales de este traductor es reconocer los bloques de construccin individuales
del lenguaje que se traduce.
Analizador lxico: es el mas bajo, esto implica reconocer que ciertas cadenas de smbolos del
programa que se traduce (programa fuente) deben considerarse como la representacin de un solo
objeto. Ejemplo: reconocer la variable lista como un identificador en vez de 5 letras por separado; la
cadena de dgitos 520 debe reconocerse como un solo numero; la cadena := como la operacin de
asignacin, etc.
El proceso de identificacin de estas secuencias multi-simbolos dentro del programa fuente es manejada
por la parte del compilador llamada analizador lxico el cual es un sub-modulo que recibe el programa
fuente como una cadena de smbolos y produce una cadena de componentes lxicos o tokens cada uno
de los cuales representa un solo objeto que pudo haberse representado con mas de un smbolo en la
cadena de entrada.
Anlisis sintctico: despus de reducir a un componente lxico o token cada secuencia multisimbolos
que representa a un objeto, la siguiente tarea del traductor es analizar el patrn de componentes lxicos.
Un compilador tpico tendra que reconocer que los componentes lxicos IF-THEN-ELSE o que la cadena
que se encuentra entre el token REPEAT y UNTIL representa el cuerpo de una estructura de ciclo. Este
anlisis se conoce como anlisis sintctico y es realizado por el modulo del compilador llamado
analizador sintctico, el cual conforme reconoce las distintas estructuras de control del programa solicita
los servicios del modulo generador de cdigo para producir la versin traducida de esta parte del
programa. Al formar estas porciones traducidas del programa, empieza a construirse el programa objeto.
Lenguaje natural.
Lenguaje formal.
Analizador lxico.
Analizador sintctico.
Figura 1.2. gramtica que describe un pequeo sub-conjunto del lenguaje espaol.
Examinando la figura anterior tenemos que:
Los trminos que no aparecen entre corchetes se llaman TERMINALES o smbolos que pueden aparecer
en una frase.
Los trminos que aparecen entre corchetes se llaman NO TERMINALES. Uno de estos no terminales se
considera smbolo de inicio, en la figura anterior es frase.
Cada una de las lneas de la figura se llama REGLA DE REESCRITURA o regla de produccin consta de
una parte izquierda y una derecha conectadas por una flecha, la parte derecha representa una
descripcin mas detallada de la parte izquierda.
Derivacin de una cadena.
Se dice que una gramtica genera una cadena de terminales si al comenzar con el smbolo de inicio se
puede producir esa cadena sustituyendo sucesivamente los patrones del lado izquierdo con las
expresiones correspondientes de la derecha. Hasta que solo queden terminales. A esta secuencia de
pasos se le conoce como derivacin de una cadena.
Ejemplo: la frase Carlos quiere a Ana. Puede generarse a partir de la gramtica de la figura 1.2.
Genere la frase "Ana quiere golpear a Carlos" a partir de la gramtica de la figura 1.2.
2.
ACTIVIDADES SUGERIDAS
1.
2.
INTRODUCCIN
Para el estudio de este tema es necesario analizar dos tipos de gramticas de la clasificacin de
Chomsky, las regulares y las independientes de contexto, las reglas permitidas y no permitidas.
CONTENIDO
En 1959 Noam Chomsky clasifico las gramticas en cuatro familias. Las gramticas no restringidas,
sensibles al contexto, independientes del contexto y las gramticas regulares que se conocen como
gramticas de tipo cero, uno, dos y tres respectivamente. Los lenguajes que resultan de dichas
gramticas tambin se identifican con lenguajes de tipo cero, uno, dos y tres. A esta jerarqua de
lenguaje se le conoce como la jerarqua de chomsky.
GRAMATICA
TIPO
Regular
Independiente del
contexto
Sencible al contexto
Tipo no restringido
Gramtica Regular: Es aquella gramtica cuyas reglas de reescritura tienen las siguientes restricciones:
1.- El lado izquierdo de cualquier regla de reescritura debe consistir en un solo no terminal, el lado
derecho debe ser un terminal seguido por un no terminal, o un solo terminal o la cadena vaca
Ejemplo:
Z
X
X
yX
y
yW X
X
xZy
YX WvZ
xX
Donde X es un no terminal que no aparece en ningn otro lugar de la gramtica, sin alterar el conjunto de
cadenas que podra generar la gramtica.
N
xX
=x
La importancia de las gramticas regulares reside en que los lenguajes generados por ellas son
exactamente aquellos que reconocen los autmatas finitos.
NOTA:
se interpreta como "puede ser", "se compone de", "es sustituida por".
| se interpreta como "o" ejemplo: E
AyE
B se unen en E
A|B.
zMNz
M
M
N
aMa
z
bNb
El termino independiente del contexto refleja que, como el lado izquierdo de cada regla de reescritura
nicamente puede contener un solo no terminal la regla puede aplicarse sin importar el contexto donde
se encuentre dicho no terminal.
Al igual que las gramticas regulares, las independientes del contexto (G.I.C.) generan cadenas por
medio de derivaciones. En el caso de las G.I.C. pueden surgir dudas con respecto a cual ser el no
terminal que deber reemplazarse en un paso especifico de la derivacin. Por ejemplo al generar una
cadena con la gramtica anterior en el primer paso produce la cadena zMNz que representa la opcin de
reemplazar el no terminal M o el N en el siguiente paso. Por consiguiente, para generar la cadena
zazabzbz se podra producir la siguiente derivacin zazababa (por la izquierda).
S
zMNz
zaMaNz
zazaNz
zazabNbz
zazabzbz
Siguiendo la regla rutinaria de aplicar siempre una regla de reescritura al no terminal mas a la izquierda
en la cadena actual, a esto se le llama derivacin por la izquierda.
Tambin podra producirse la siguiente derivacin zazabzbz (por la derecha)
S
zMNz
zMbNbz
zMbzbz
zaMabzbz
zazabzbz
Aplicando siempre al regla de reescritura al no terminal situado mas a la derecha, lo cual dara como
resultado una derivacin por la derecha. Incluso se podran seguir otros patrones y obtener otras
derivaciones de la misma cadena.
ACTIVIDADES OBLIGATORIAS
aE
A
B
b
Aa
b\ bB
2. a) ab
3. b) ab3
4. c) aa3b
5. d ) es posible derivar abab?
6. Derivar a) abaa y b) aaabaa.
S
S
T
T
aS
bT
aT
bA
aA\b\
ACTIVIDADES SUGERIDAS
1. Muestre que es posible modificar la gramtica que se presenta a continuacin (con smbolo
inicial S) para formar una gramtica regular, sin cambiar el lenguaje que se genera. Compruebe
el resultado derivando la cadena yxxy con ambas gramaticas.
S
X
X
Y
yX
xxX
yY
1. Convierta la siguiente gramtica regular en otra gramtica regular que no contenga reglas de
reescritura cuyos lados derechos consistan en un solo terminal pero a la vez genere el mismo
lenguaje. Compruebe el resultado derivando la cadena xy o xz con ambas gramticas.
S
S
S
S
xS
y
z
AA
AAA
a
bA
Ab
Aas
a
SbA
SS
ba
yX
yZ
Xx
Yy
1. Dada la siguiente gramtica independiente del contexto derivar a 2b3 por derecha e izquierda
derivar a5
S
A
B
AB
aA\a
bB\b
SbS\ScS\a
JUSTIFICACIN
El estudio de los arboles de derivacin es un tema importante y muy entendible, la similitud con las
gramticas y la obtencin de los arboles por medio de la misma.
INTRODUCCIN
Las gramticas han sido un tema importante, estudiaremos como pro medio de una gramtica podemos
obtener un rbol de derivacin, utilizando derivaciones por la izquierda o por la derecha.
CONTENIDO
Un rbol de anlisis sintctico o rbol de derivacin es un rbol cuyos nodos representan terminales y no
terminales de la gramtica donde el nodo raz es el smbolo de inicio y los hijos de cada nodo no terminal
son los smbolos que reemplazan a ese no terminal en la derivacin (ningn smbolo terminal puede
ser nodo interior del rbol, ni ningn smbolo no terminal puede ser una hoja).
A continuacin se presenta un rbol de anlisis sintctico para la cadena zazababa usando la siguiente
gramtica y cual quiera de las derivaciones.
Ejemplo 1
S
M
M
N
zMNz
aMa
z
bNb
zMNz
aMaNz
zazaNz
zazabNbz
ACTIVIDADES OBLIGATORIAS.
zazabzbz
Representar el rbol de anlisis sintctico para las cadena que se piden en cada ejercicio usando las
siguientes gramticas y cual quiera de las derivaciones.
AA
AAA\a\bA\Ab
aAS\a
SbA\SS\ba
c. Derivar aabbaa
ACTIVIDADES SUGERIDAS
1. A partir de los siguientes arboles de derivacin, generar las gramticas correspondientes para
cada rbol.
a)
b)
AUTOEVALUACION
Representar el rbol de anlisis sintctico para las cadena que se piden en cada ejercicio usando las
siguientes gramticas y cual quiera de las derivaciones.
AB
aA\a
bB\b
SbS\ScS\a
CONTENIDO
Dentro del diseo de los compiladores se coloca la tarea del anlisis lxico, la cual se puede describirse
como un proceso de consulta de una tabla. Aunque las tablas, tienen utilidad potencial en este contexto
su empleo es tambin mas comn en las rutinas del anlisis sintctico de los compiladores.
Los conceptos que presentan los autmatas finitos y los lenguajes regulares son de inters fundamental
para la mayora de las aplicaciones que requieren tcnicas de reconocimiento de patrones.
Una de estas aplicaciones es la construccin de compiladores.
Un compilador debe de ser capaz de reconocer cuales son las cadenas de smbolos del programa fuente
que deben considerarse como representaciones de objetos individuales, como lo son los nombres de
variables, representacin de constantes numricas y representacin de palabras reservadas.
Esta tarea de reconocimiento de cadenas es realizada por un ANALIZADOR LEXICO del compilador.
ACTIVIDADES OBLIGATORIAS
1. Por medio de las gramticas y de los arboles de derivacin disee un pequeo compilador.
RECURSOS PARA AMPLIAR EL TEMA
BIBLIOGRAFIA
AUTOEVALUACION
Las gramticas se pueden expresar de diferentes formas, en ocasiones podemos llegar al mismo
resultado utilizando gramticas que difieren en su estructura, una norma para estandarizar las gramtica
es la Forma Normal de Chomsky.
CONTENIDO
Teorema 2.4
Si L es un lenguaje independiente del contexto que no contiene la cadena vaca, entonces existe una
gramtica G independiente del contexto tal que L(G)=L y el lado derecho de cualquier regla de
reescritura en G consiste en un solo terminal o exactamente dos no terminales.
Se dice que una gramtica cuyas reglas de reescritura se adhieren a las restricciones del teorema 2.4
tiene la FORMA NORMAL DE CHOMSKY (FNC o CNF), llamada as en honor a Noam Chomsky. Por
ejemplo la siguiente gramtica cuyo smbolo inicial es S tiene la forma normal de Chomsky.
S
M
X
Y
XM
SY
x
y
xSy
xy
zMz
zMz
N
yMy
x
zyMyz
zyNyz
zyxyz
Paso 1
Introducir los nuevos no terminales YZ y convertir la gramtica anterior en la siguiente:
S
M
M
Z
Y
ZMZ
N
YMY
z
y
Paso 2
Lo siguiente es reemplazar la regla S ZMZ por el par de reglas S ZR; R MZ, mientras que M
YMY se reemplaza por M YP; P MY para obtener la siguiente gramtica:
S
R
M
M
P
Z
Y
N
ZR
MZ
N
YP
MY
z
y
x
Paso 3
Finalmente la regla M N se reemplaza por la regla M
que tiene la forma normal de Chomsky.
S
R
M
M
P
Z
Y
N
S
ZR
zMZ
zYPZ
ZR
MZ
x
YP
MY
z
y
x
zyPZ
zyMYZ
zyxYZ
zyxyZ
zyxyz
ACTIVIDADES OBLIGATORIAS
1. De las siguientes gramticas independientes del contexto obtener otra gramtica en la FNC que
generen el mismo lenguaje.
a.
S
N
N
M
aNa
M
bNb
x
b.
S
xSy
S
N
wNz
S
ACTIVIDADES SUGERIDAS
De las siguientes gramticas mencione cual tiene la forma normal de Chomsky.
a.
A
A
B
C
ABC
aC
b
c
S
X
Y
XY
a
xSy
A
Z
X
Y
XZ
AY
a
b
b.
c.
S
M
N
MN
a
b
d.
S
N
M
NM
MS
b
e.
bA\aB
bAA\aS\a
aBB\bS\b
AB\CA
a
BC\AB
-aB\b
b.
S
S
S
ic+S
ic+SeS
s
2.1. CONCEPTO.
2.2. REPRESENTACION.
2.3. APLICACIONES.
El analizar este tema nos llevara a un mejor entendimiento del comportamiento de algunos dispositivos
de computacin y electrnicos como lo pueden ser cajeros automticos.
INTRODUCCIN
Las funciones que desempaa una maquina de estado finito es un factor importante debido a que tienen
un campo muy amplio de aplicacin, cada uno de los elementos que se requieren para que estas
maquinas desempeen funciones necesarias e importantes.
CONTENIDO
Una maquina de estado finito o maquina secuencial es un sistema N=(I,S,O,
, ) donde:
La maquina lee una secuencia de smbolos de entrada que estn almacenados en una cinta de entrada y
almacena una secuencia de smbolos de salida en una cinta de salida. Supngase que la maquina se
encuentra en un estado SI y que lee sus smbolos de entrada a 1 en una cabeza de lectura. Se aplica
entonces la transformacin l causando as que la cabeza de escritura registre un smbolo o k en la cinta de
la salida. La funcin d hace que la maquina entre en el estado S J. La maquina procede a leer el siguiente
smbolo de entrada y continua su operacin hasta que se hayan procesado todos los smbolos en la cinta
de entrada.
Ejemplo: lo siguiente define una maquina de estado finito con 2 smbolos de entrada, 3 estados internos
y 3 smbolos de salida.
I={a,b}
S={q0,q1,q2}
O={x,y,z}
=funcin de prximo estado SXI
(q0,a)=q1
(q1,a)=q2
(q2,a)=q0
(q0,b)=q2
(q1,b)=q1
(q2,b)=q1
(q0,a)=x
(q1,a)=x
(q2,a)=z
(q0,b)=y
(q0,b)=z
(q2,b)=y
NOTA: es tradicional usar la letra q para los estados de la maquina y usar el smbolo q 0 para el estado
inicial.
ACTIVIDADES OBLIGATORIAS
1. Las maquinas de estado finito estn compuestas de 5 elementos, relacione cada uno de estos
elemento con algn objeto que utilice cotidianamente y describa su funcionamiento.
ACTIVIDADES SUGERIDAS
1. Mencione que relacin tienen las maquinas de estado finito con las gramticas y los lenguajes
formales.
RECURSOS PARA AMPLIAR EL TEMA
BIBLIOGRAFIA
AUTOEVALUACION
.2. REPRESENTACIN
OBJETIVO
Comprender las diferentes maquinas de estado y cada uno de los smbolos de entrada as como los de
salida.
JUSTIFICACIN
Para comprender las maquinas de estado finito es necesario analizar la manera en que representaremos
cada una de las diferentes maquinas.
INTRODUCCIN
La maquinas de estado finito pueden ser representadas de dos formas diferentes, cada una de ellas
tiene sus caractersticas, pero las dos representan lo mismo, no alteran los resultados.
CONTENIDO
Hay dos maneras de representar una maquina de estado finito en forma compacta.
Diagrama de estado
Tablas de estado
Diagramas de estado
El diagrama de estado de una maquina de estado finito esta representado como sigue N=(I,S,O, , ) es
un grafo rotulado donde los nodos son los estados de N.
Tabla de estado
Alternativamente, la maquina se puede representar por su tabla de estado, que para cada combinacin
de estado y entrada proporciona el prximo estado y el smbolo de salida.
q0
q1,x
q2
q1
q2,x
q1,z
q2
q0,z
q1,y
ACTIVIDADES OBLIGATORIAS
q0
q1,x
q2,y
q1
q3,y
q1,z
q2
q1,z
q0,x
q3
q0,z
q2,x
q0
q1,x
q0,x
q2,y
q1
q0,y
q2,z
q2,z
q2
q2,x
q0,x
q1,z
2.3. APLICACIONES
OBJETIVO
Conocer la importancia que tienen estas maquinas en la realizacin de funciones cotidianas.
JUSTIFICACIN
En las funciones que realizamos cotidianamente hacemos uso frecuente de varios dispositivos
electrnicos y computacionales, todos realizan funciones que nosotros no estamos acostumbrados a
analizar.
INTRODUCCIN
Las maquinas de estado finito tienen un campo muy amplio de aplicacin, en repetidas momentos hemos
hecho uso de ellas, pero como es algo que usamos tan cotidianamente que no nos damos cuenta de que
estn hay. Cada visita que realizamos al banco, al utilizar un despachador automtico o cobrador
automtico, etc.
CONTENIDO
Una maquina de estado finito se puede emplear como una herramienta en el reconocimiento de
lenguajes. Ya que este tipo de maquina por medio de una cadena de entrada evala cada smbolo con
los ya almacenados en memoria. Este tipo de maquinas debe reconocer estructuras lxicas de
complejidad arbitraria. Si cada smbolo de entrada, concuerda a los ya almacenados en memoria la
maquina llegara a un estado de aceptacin, de lo contrario el estado de la maquina ser de no
aceptacin.
Este tipo de maquinas las podemos ver con frecuencia en los sistemas de seguridad de algn
departamento, fabrica, o para acceder a privilegios de determinado software.
Se pueden utilizar letras o dgitos que sern dados de alta por medio de un terminal como lo es el
teclado.
ACTIVIDADES OBLIGATORIAS
Mencione por lo menos 5 ejemplos donde se apliquen las maquinas de estado finito.
ACTIVIDADES SUGERIDAS
Analice el funcionamiento, organizacin y desempeo que tienen las maquinas de estado finito en los
objetos que nos rodean.
RECURSOS PARA AMPLIAR EL TEMA
BIBLIOGRAFIA
AUTOEVALUACION.
Investigar un ejemplo donde se apliquen las maquinas de estado finito, su funcionamiento y el papel que
desempean en la actualidad.
MODULO 3. AUTMATAS DE ESTADO FINITO
3.1. CONCEPTO.
q0
q0
q1
q1
q0
q2
q2
q2
q2
2. Mencione que relacin tienen las maquinas de estado finito con los
autmatas de estado finito y cuales son sus diferencias.
ACTIVIDADES SUGERIDAS
q0
q1
q3
q2
q1
q1
q3
q0
q2
q3
q0
q1
q2
q1
q3
En el estudio de mdulos posteriores se debe tener un total conocimiento e identificacin de cada uno de
los componentes de los diagramas y todo lo que implica la realizacin de los mismos.
CONTENIDO
UN DIAGRAMA DE TRANSICIONES es una coleccin finita de crculos, los cuales se pueden rotular
para fines de referencia, conectados por flechas que reciben el nombre de ARCOS. Cada uno de estos
arcos se etiqueta con un smbolo o categora de smbolos que podra presentarse en la cadena de
entrada que se analiza. Uno de los crculos se designa con un apuntador, y representa una posicin
inicial. Adems, por lo menos uno de los crculos se representa como un circulo doble; estos crculos
dobles designan posiciones del diagrama en las cuales se ha reconocido una cadena valida.
Decimos que una cadena de smbolos es aceptada por un diagrama de transiciones si los smbolos que
aparecen en la cadena (de izquierda a derecha) corresponden a una secuencia de arcos rotulados que
conducen del circulo designado por el apuntador a un circulo doble.
Los crculos de un diagrama de transiciones representa posiciones, o estados, donde no podemos
encontrar al evaluar una cadena de smbolos. Es comn llamar estados a los crculos de un diagrama de
transiciones. l circulo de partida se llama estado inicial y los crculos dobles, estados de aceptacin.
Una tabla de transiciones es un arreglo (o matriz) bidimensional cuyos elementos proporcionan el
resumen de un diagrama de transiciones correspondiente.
Las cadenas que deben analizarse en una aplicacin estn construidas a partir de un conjunto de
smbolos. En cualquier situacin encontramos que el conjunto de smbolos es finito, por lo que nuestro
primer paso hacia la formalizacin del proceso de reconocimiento es asumir la hiptesis de la existencia
de una conjunto finito, no vaco, de smbolos a partir del cual se construyen las cadenas que se
analizaran. A este conjunto de smbolos lo llamamos alfabeto.
Cada cadena que se recibe se analizara como una secuencia de smbolos, uno a la vez. Nos referimos a
la fuente de esta secuencia como el flujo de entrada conforme llega cada smbolo del flujo de entrada,
nuestro proceso de reconocimiento implica cambiar de un estado, tomando de entre una cantidad finita
de ellos, a otro, o bien permanecer en el estado actual. El nuevo proceso depender nicamente del
estado actual y del smbolo del que se recibe.
ACTIVIDADES OBLIGATORIAS
Mencione en que podemos aplicar los diagrama de transiciones.
ACTIVIDADES SUGERIDAS
Analice el diagrama de transiciones y relacione cada uno de sus componentes con un objeto comn.
RECURSOS PARA AMPLIAR EL TEMA
BIBLIOGRAFIA
AUTOEVALUACION
Describe que es lo que representan(no concepto) cada uno de los siguientes elementos:
Diagrama de transiciones
Arco
Estados de aceptacin
Estado inicial
Alfabeto
Flujo de entrada
La maquina de estado finito posee ciertas caractersticas similares a los autmatas de estado finito, las
diferencias son mnimas.
INTRODUCCIN
A lo largo de la unidad nos hemos dado cuenta que existe relacin de unos temas con otros, con este
tema pretendemos explicar la relacin y diferencia que existe con los autmatas finitos y las maquinas de
estado finito, analizaremos cada uno de los dos.
CONTENIDO
diferencia:.
Un Autmata finito es similar a una maquina de estado finito, excepto que el autmata tiene estados de
aceptacin y rechazo en lugar de una salida.
Relacin:
Tambin podemos considerar un AF M como una MEF con dos smbolos de salida, digamos si y no, en
donde la salida es si, si M va en estado de aceptacin y la salida es no, si M va en estado de no
aceptacin. En otras palabras, hacemos a M en un MEF definiendo una funcin de salida g de SXA en
T={SI,NO} como sigue:
Ejemplo Sean a y b los smbolos de entrada, construya un autmata finito M que acepte precisamente
aquellas cadenas en a y b que tienen un numero par de as.
ACTIVIDADES OBLIGATORIAS
1. Construya un AF M con smbolos de entrada a y b que acepte solamente aquellas cadenas con a
y b tales que el numero de bs es divisible por 3. (sugerencia: se recomiendan 3 estados ).
ACTIVIDADES SUGERIDAS
1. Mencione a grandes rasgos que tienen en comn los autmatas de estado finito con la maquina
de estado finito.
RECURSOS PARA AMPLIAR EL TEMA
BIBLIOGRAFIA
AUTOEVALUACION
1. Sean a y b los smbolos de entrada, construya un autmata finito M que acepte precisamente
aquellas cadenas en las que aparezcan a3 y b4.
2. Construya un AFM con smbolos de entrada a y b que acepte solamente aquellas cadenas con a
y b tales que aabb aparezca como una sub-cadena. Ejemplo: baaabbba, babaabba sern
aceptables, pero babbaa y aababaa no lo sern.
3. Construya un AFM con smbolos de entrada b que acepte solamente aquellas cadenas con bbb.
JUSTIFICACIN
Los autmatas son una herramienta importante en el campo de la computacin, el manejo de los mismos
nos ayudara a comprender la forma en que trabajan los analizadores lxicos.
INTRODUCCIN
Los autmatas finitos al igual que otros se representan de dos maneras, cada una de ellas con sus
caractersticas pero indican lo mismo. Veremos como podemos llegar a construir una analizador lxico
por medio de una tabla de transiciones.
CONTENIDO
Una de estas aplicaciones es la construccin de compiladores. Por ejemplo, un compilador debe ser
capaz de reconocer cuales son las cadenas de smbolos del programa fuente que deben considerarse
como representaciones de objetos individuales, por ejemplo nombres de variables, constantes numricas
y palabras reservadas. Esta tarea de reconocimiento de patrones es manejada por el analizador lxico
del compilador.
Un problema al que se enfrenta un compilador es detectar si una cadena del programa fuente representa
o no un nombre de variable aceptable. En un lenguaje del programa tpico estos nombres comienzan con
una letra, seguida por una combinacin arbitraria (pero finita) de letras y dgitos. As X25, peperosas, X2
y Z3 serian nombres aceptables, mientras que 25, X.h y Pepe@Rosas no lo serian. Adems, cualquier
estructura lxica en un lenguaje de programacin termina con un conjunto de smbolos reconocido como
fin de la estructura. A estos los llamaremos marcas de fin de cadena. En el caso de nombres de
variables, estas marcas podran ser espacios, retornos de carro, puntos y comas.
El siguiente es el diagrama de transiciones que representa la sintaxis de un nombre de variable. letra
Lo siguiente representa una tabla de transiciones obtenida a partir del diagrama anterior.
q1
letra
dgito
FDC
q3
q2
Error
q2
Error
Error
Error
q3
q3
q3
Aceptar
Con el fin de complementar la tabla de transiciones, agregamos una columna rotulada "FDC" para el fin
de cadena. La casilla en la columna FDC contiene el valor aceptar si la fila corresponde a un estado de
aceptacin del diagrama, o contiene el valor "error", en caso contrario.
Es bastante sencillo disear un analizador lxico basndose en una tabla de transiciones. Se asigna a
una variable un valor inicial, correspondiente al estado inicial y se actualiza repetidamente con base en la
tabla, conforme se leen los smbolos de la cadena de entrada, hasta llegar al fin de la cadena. A
continuacin se presenta el analizador lxico basado en la tabla anterior.
Estado:=q1;
Repeat
Case smbolo of
Como un ejemplo mas, a continuacin se muestra un diagrama de transiciones de un AF, una tabla de
transiciones y un analizador lxico, respectivamente para reconocer cadenas que representan nmeros
reales positivos en notacin decimal o exponencial, como 35.7, 2.56E10 o 34.0E-7. La estructura del
analizador lxico basado es esencialmente igual al del ejemplo anterior ; la nica diferencia esta en la
rutina que clasifica el smbolo de entrada. De hecho el algoritmo fundamental para el anlisis de una
cadena utilizando una tabla de transiciones es el mismo para cualquier estructura lxica.
Fig. 1.5 Diagrama de transiciones de un AF que representa la sintaxis de un nmero real.
Fig. 1.6 Tabla de transiciones construida a partir del diagrama de transiciones de la figura 1.5.
digito
FDC
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Aceptar
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Error
Aceptar
Estado:=l;
Repeat
Leer el siguiente smbolo del flujo de entrada;
Case smbolo of
0 a 9: entrada:="digito";
,E,t,-:entrada:="smbolo";
1. Construya una tabla de transiciones a partir del siguiente diagrama y escriba un analizador lxico
basado en esa tabla
1. Investigue los avances tecnolgicos donde se apliquen los autmatas de estado finito y como
funcionan.
RECURSOS PARA AMPLIAR EL TEMA
BIBLIOGRAFIA
AUTOEVALUACION
1. Construya una tabla de transiciones a partir del siguiente diagrama y escriba un analizador lxico
basado en esa tabla.
1. Construya una tabla de transiciones a partir del siguiente diagrama y escriba un analizador lxico
basado en esa tabla
: es el alfabeto de la maquina.
El requisito del determinismo impone ciertas restricciones sobre los diagramas de transiciones que
pueden aparecer en los programas para un autmata finito determinista. Se dice que un diagrama de
transiciones es determinista si cumple las siguientes condiciones:
En particular, cada estado de estos diagramas solo debe tener un arco que sale para cada
smbolo del alfabeto; de lo contrario, una maquina que llega a este estado se enfrentara a una
eleccin de cual debe ser el arco a seguir.
Adems, dicho diagrama debe estar completamente definido, es decir debe existir por lo menos
un arco para cada smbolo del alfabeto; de lo contrario, una maquina que llega a este estado
puede enfrentarse a una situacin donde no pueda aplicarse ninguna transicin.
Ejemplo 1:
El siguiente diagrama no es determinista ya que no esta completamente definido; no representa cual
ser la accin que debe ocurrir sise recibe una letra o un dgito mientras se encuentra en el estado 2.
Ejemplo 2:
El siguiente diagrama tiene problemas similares ya que entre otras cosas no describe que deber
suceder si recibe un punto mientras se encuentra en el estado inicial.
No obstante, los dos diagramas vistos anteriormente no tienen mas de un arco de salida de un estado
para cada smbolo y, por consiguiente, pueden modificarse para ajustarse a los requisitos del
determinismo, aplicando lo siguiente:
Para cada smbolo del alfabeto, dibujar un arco rotulado con dicho smbolo, que empieza y
termina en este nuevo estado.
Agregamos arcos de los otros estados a este nuevo, hasta que cada uno de los estados sea el
origen de un arco para cada smbolo del alfabeto.
En este ejercicio el nuevo estado es el numero 8. Observe que en diagrama original la ocurrencia de una
cadena inaceptable ocasionaba un error al solicitar el recorrido de un arco inexistente. En el diagrama
modificado, una cadena inaceptable ocasiona que la maquina recorra un arco a estado 8, donde
permanece hasta alcanzar el final de la cadena de entrada. Al llegar a este punto se rechazara la
cadena, ya que el estado 8 no es de aceptacin. Por esto, los dos diagramas son equivalentes en lo que
se refiere a que aceptan las mismas cadenas; difieren solo en la manera en que llegan a sus
conclusiones.
AUTOMATA FINITO NO DETERMINISTA
Esta maquina se parece mucho a un AFD, pues tambin analiza cadenas construidas a partir de un S y
solo puede tener un numero finito de estados, algunos de los cuales son de aceptacin y uno es el
estado inicial. A diferencia de los AFD, la transicin que se ejecuta en una etapa dada de un AFN puede
ser incierta, es posible aplicar cero, una o mas de una transicin mediante el mismo smbolo de entrada,
como sucede con una maquina que no esta completamente definida.
Ejemplo, diagrama de transiciones que acepta cadenas que representan enteros o cadenas que
representan nmeros reales en notacin decimal.
Un AFN acepta una cadena si es posible que su anlisis deje a la maquina en un estado de aceptacin.
De manera formal, un AFN se define como sigue, un AFN consiste en una quntupla (S, , p, i, F) donde:
ACTIVIDADES OBLIGATORIAS
q0
q1
q2
q1
q2
q0
q2
q2
q2
3.
4.
3. Sea M=(S, ,
, i, F) donde:
q0
q2
q1
q1
q3
q0
q2
q0
q3
q3
q1
q2
S={q0, q1}
={a, b}
i = q0
F= {q0}
3.
4.
q0
q0
q1
q1
q1
q0
i = q0
F= {q0, q1, q2}
6.
7.
q0
q0
q1
q1
q0
q2
q2
q0
q3
q3
q3
q3
q0
{q1}
q1
{q0, q2}
q2
{q0}
q0
{q0, q3}
{q0, q1}
q1
{q2}
q2
{q2}
{q2}
q3
{q4}
q4
{q4}
{q4}
i = q0
F ={q2, q4}
= {a, b}
S = {q0, q1, q2, q3, q4}
q0
{q0, q1}
{q1}
q1
{q0, q1}
4.
5.
6.
q0
q1
q2
q1
q3
q1
q2
q2
q3
q3
q3
q3
i = q0
F ={q1, q2}
= {a, b}
S = {q0, q1, q2,
q3}
Construir el diagrama de transiciones correspondiente y decir que lenguaje genera.
}.
DEMOSTRACIN
Si G es una gramtica regular de , podemos convertir en una gramtica regular G que genera el mismo
lenguaje pero que no contiene reglas de reescritura cuyo lado derecho consiste en un solo terminal.
Entonces podemos definir M como un autmata finito no determinista (S, , p, i, F), donde S es la
coleccin de no terminales de G, i es el smbolo inicial de G, F es al coleccin de no terminales de G
que aparecen en el lado izquierdo de alguna regla c , y p consiste en la tripleta (P, x, Q) para el cual G
contiene una regla de reescritura de la forma P xQ. A la inversa, si M es el autmata finito no
determinista (S, ,p ,i ,F), se define G como la gramtica regular de para la cual los no terminales son
los estados de S, el smbolo inicial es i, y las reglas de reescritura son de la forma P xQ si (P, x, Q)
esta en p y Q
c si Q esta en F.
En ambos casos, L(M)=L(G) ya que la derivacin de una cadena de la gramtica G corresponde
directamente a una ruta en el diagrama de transiciones de M que conduce del estado inicial a un estado
de aceptacin y viceversa.
Ejemplo:
Gramtica regular G y diagrama de transiciones para un autmata finito M tal que L(G)=L(M).
S
S
xX
yY
yY
xX
Y
Diagrama que representa la gramatica anterior.
ACTIVIDADES OBLIGATORIAS
1. Dibuje un diagrama de transicin para un autmata finito que acepte el lenguaje generado por la
gramtica regular. Con smbolo inicial S que se presenta a continuacin.
S
X
Y
Y
xX
yY
xX
ACTIVIDADES SUGERIDAS
1. Presente una gramtica regular que genere el lenguaje aceptado por el autmata finito cuyo
diagrama de transiciones se presenta a continuacin.
Dibuje un diagrama de transicin para un autmata finito que acepte el lenguaje generado por la
gramtica regular. Con smbolo inicial S que se presenta a continuacin.
S
S
S
Y
Y
X
X
xX
yY
yY
xX
En este tema estudiaremos como podemos obtener lenguajes mas complicados a partir de bloques de
construccin de lenguajes ms sencillos, por medio de tcnicas como unin, concatenacin y estrella de
Kleene.
CONTENIDO
Una Expresin Regular (para un alfabeto
a)
b) Cada miembro de
Para construir un diagrama que acepte la unin de lenguajes se introduce un nuevo estado inicial a partir
del cual podamos entrar a uno de los diagramas originales sin poder regresar.
El lenguaje aceptado por el diagrama combinado ser L1L2. As mismo la concatenacin de dos
lenguajes regulares tambin es regular.
ESTRELLA DE KLEENE:
La ultima operacin es la estrella de Kleene; y difiere de las anteriores en que amplia un solo lenguaje en
lugar de combinar dos. Esto se logra formando todas las concatenaciones de cero o mas cadenas del
lenguaje que se amplia (la cadena c ser miembro del lenguaje ampliado). Esta operacin se representa
por medio de un asterisco(*).
Por ejemplo:
Si L1 = {y} L1* seria el lenguaje que consiste en todas las cadenas finitas de varias y, incluyendo la
cadena vaca , o si L2 = {y y} entonces L2* serian todas las cadenas que consisten en un numero par
de y, incluyendo .
Ejemplo: Diagrama de Transiciones.
El primer paso para modificar el diagrama de transiciones a fin de que acepte la estrella de Kleene del
lenguaje originalmente aceptado es dibujar un nuevo estado inicial y concatenarlo al diagrama original,
por cada estado que sea punto de destino de un arco de alguno de los estados iniciales originales
dibujamos un arco con la misma etiqueta desde el nuevo estado inicial; hacia el destino de un arco del
estado inicial del diagrama original luego designamos a este como estado de aceptacin.
Una vez que se ha agregado el nuevo estado inicial, se modifica el diagrama para poder establecer un
ciclo de los estados de aceptacin al inicio del programa, aadiendo un arco de cada estado de
aceptacin a cada estado que es el destino de un arco del estado inicial. Cada uno de estos nuevos
arcos se rotula con la etiqueta que corresponda al arco del estado inicial. El resultado es un diagrama
que acepta una cadena no vaca si y solo si esa cadena es la concatenacin de cadenas aceptadas por
el diagrama original. Se concluye que la estrella de Kleene de cualquier lenguaje regular es regular.
ACTIVIDADES OBLIGATORIAS
ACTIVIDADES SUGERIDAS
1. Mencione que diferencia hay entre las operaciones unin, concatenacin y estrella de Kleene.
2. Dibuje un diagrama de transiciones que acepte * del lenguaje aceptado por el siguiente
diagrama.
1. Realice las operaciones unin, concatenacin y estrella de Kleene de los siguientes diagramas.
El anlisis de este tema nos llevara a conocer que no todas las cadenas pueden ser aceptadas por un
autmata finito, las cadenas sern clasificadas de acuerdo al resultado que muestre dicho diagrama.
CONTENIDO
Consideremos que la tarea que queremos que realicen los autmatas finitos es aceptar solo aquellas
cadenas que se adhieran a ciertas reglas de composicin. En otras palabras, cada autmata finito
determinista se puede considerar como un agrupador de todas las cadenas de entrada potenciales en
dos categoras: las cadenas que son aceptables y las que no lo son.
Si M es un autmata finito determinista, la coleccin de cadenas que acepta constituye un lenguaje con
respecto al alfabeto. Este lenguaje se representa con L(M) que se lee "el lenguaje que acepta M".
Subrayamos que L(M) no es cualquier coleccin de cadenas que acepta M, sino la coleccin de todas las
cadenas que acepta M, ni una mas ni una menos. Un lenguaje de la forma L(M) para un autmata finito
M se denomina lenguaje regular.
ACTIVIDADES OBLIGATORIAS
1.
Describa un ejemplo donde mencione que cadenas son aceptables y cuales no.
ACTIVIDADES SUGERIDAS
1.
2.
4.1. CONCEPTO.
CONTEXTO.
OBJETIVO
Disear y analizar los autmatas de pila para comprender mejor su aplicacin en
los analizadores sintcticos.
JUSTIFICACIN
Tener conocimiento de la utilizacin de los autmatas de pila es un tema
importante, ya que podemos ampliar nuestro conocimiento y tener mas
herramientas para el diseo de analizadores.
INTRODUCCIN
En este tema veremos como trabaja un AP, los elementos que lo forman y la
manera en que se representan las transiciones.
CONTENIDO
Una maquina de este tipo se representa de la siguiente forma
Al igual que un autmata finito un autmata de pila cuenta con un flujo de entrada y
un flujo de control que puede encontrarse en uno de entre un numero finito de
estados. Uno de estos estados se designa como el inicial y por lo menos un estado
es de aceptacin.
La principal diferencia es que los autmatas de pila cuentan con una pila en donde
pueden almacenar informacin para recuperarla mas tarde.
Los smbolos que pueden almacenarse en esta pila se conocen como smbolos de
pila de la maquina, constituyen un conjunto finito que puede incluir algunos
smbolos definiendo el alfabeto de la maquina y quiz algunos smbolos adicionales
que se utilizan como marcas internas. Si una maquina inserta un smbolo especial
en la pila antes de efectuar algn otro calculo, entonces ese smbolo en la cima de
la pila puede usarse como indicador de pila vaca para clculos posteriores, dicho
smbolo es #.
Las transiciones que ejecutan los autmatas de pila deben ser variantes de la
siguiente secuencia bsica: leer un smbolo de entrada, extraer un smbolo de la
pila insertar un smbolo en la pila y pasar a un nuevo estado. Este proceso se
representa con la notacin (p,x,s;q,y) donde p,x,s;q,y son, respectivamente el
estado p actual, el smbolo x del alfabeto que se lee de la entrada, el smbolo s que
se extrae de la pila, q el nuevo estado y "y" el smbolo que se inserta en la pila.
Esta notacin esta diseada para indicar que, el estado actual, el smbolo de
entrada y el smbolo de la sima de la pila ayudan a determinar conjuntamente el
nuevo estado y el smbolo que deber insertarse en la pila. Se obtienen variantes
de este proceso bsico de transicin permitiendo que las transiciones lean
extraigan o inserten la cadena vaca. Por ejemplo una transicin posible seria (p, ,
;q, ). Es decir, al encontrarse en el estado p, la maquina podra no avanzar su
cabeza de lectura(lectura de la cadena vaca) no extraer un smbolo de su pila
(Extraer ) no insertar un smbolo en su pila (insertar ) y pasar al estado q otro
ejemplo es la transicin que solo pasa del estado p al q extrayendo el smbolo s de
la pila, lo cual representa con (p, ,s; q, ). Otros ejemplos incluyen transiciones
como (p, x , ; q , z) ,(p, , ;q,z) etctera.
Para representar la coleccin de transiciones disponibles para un autmata de pila
se utiliza un diagrama de transiciones que es semejante al de un autmata finito,
los estados se representan con crculos y las transiciones por medio de arcos entre
los crculos. La rotulacin de los arcos lleva ms informacin. Un arco de p a q que
representa la transicin (p,x,y;q,z) tendra una etiqueta x,y;z.
Ejemplo
El primer paso es marcar la parte inferior de la pila con el smbolo # y luego insertar
en la pila las x conforme se lean de la entrada. Luego la maquina extrae una x de la
pila cada vez que se lee una y. Cuando el smbolo # reaparece en la parte superior
de la pila se ha ledo el mismo smbolo # de y y x. Como el estado inicial es tambin
de aceptacin se permite que la maquina acepte la cadena x0 y0, que es .
A partir de este diagrama se observa que si la maquina lee una x de la entrada
cuando se encuentra en el estado 2, insertara una x en la pila y regresara al estado
2; si la maquina lee una de la entrada y puede extraer una x de la pila cuando se
encuentra en el estado 3; o si el smbolo # se encuentra en la cima de la pila
cuando la maquina se halla en el estado 3, la maquina puede extraer este smbolo
y pasar al estado 4.
Formalmente un autmata de pila es una sxtupla de la forma (S, , ,T,i,F) donde:
: es el alfabeto de la maquina
: es la coleccin finita de smbolos de pila
T: es una coleccin finita de transiciones
i: (es un elemento de S) es el estado inicial
F: (es un subconjunto de S) es la coleccin de estados de aceptacin
ACTIVIDADES OBLIGATORIAS
1. En los AP cul es el objetivo de la pila?
2. Menciona la secuencia bsica de los Autmatas de pila
ACTIVIDADES SUGERIDAS
1. Describe el funcionamiento de los autmatas de pila.
RECURSOS PARA AMPLIAR EL TEMA
BIBLIOGRAFIA
AUTOEVALUACION
1. Relaciona los autmatas de pila con algn elemento de uso comn y
describe su funcionamiento.
2. Mencione la relacin que tienen los autmatas de pila con los autmatas
finitos y cuales son sus diferencias.
OBJETIVO
Analizar la relacin que existe entre los autmatas de pila y las gramticas independientes del contexto,
as como su construccin a partir de las gramticas.
JUSTIFICACIN
La relacin que existe entre los AP y las GLC es un factor importante, ya que por medio de una GLC
podemos desarrollar un AP.
INTRODUCCIN
Los autmatas de pila (AP) son autmatas utilizados para representar GLC. Para ello utilizan smbolos
de entrada y salida que van usando la pila, tratando de que al final se llegue a la pila vaca, es decir, que
se reconozca el lenguaje.
CONTENIDO
En ocasiones ser conveniente considerar transiciones nicas que insertan mas de un smbolo en la pila,
como (p,a,S;q,xyz). En este caso se insertan en la pila de smbolos z, y, x (en ese orden). As despus de
efectuar la transicin, x se hallara en la cima (con y debajo y z en el fondo).
A continuacin mostraremos que los lenguajes generados por gramticas independientes del contexto
son exactamente los mismos lenguajes que aceptan los autmatas de pila. Primero se vera que para
cualquier gramtica G independiente del contexto existe un autmata de pila M tal que L(M)=L(G)
(teorema 2.2) luego para cualquier autmata de pila existe una gramtica G independiente del contexto
tal que L(G)=L(M) (T. 2.3)
TEOREMA 2.2
Para cada gramtica G independiente del contexto, existe un autmata de pila M tal que L(G)=L(M).
Demostracin
Dada una gramtica G independiente del contexto, construimos un autmata de pila M de la manera
siguiente:
1. Designe el alfabeto de M como los smbolos terminales de G, y los smbolos de pila de M como
los smbolos terminales y no terminales de G, junto con # (suponiendo que # no es un smbolo
terminal o no terminal a G)
5. Introduzca una transicin de la forma (q, ,N;q,w) para cada regla de reescritura N
w en G,
donde w puede ser una cadena de cero o mas smbolos, incluyendo terminales y no terminales.
6. Introduzca una transicin de la forma (q,x,x;q, ) para cada terminal x de G (para cada smbolo
del alfabeto de M)
zMNz
M
M
N
aMa
z
bNb
Contenido de la pila
Resto de la entrada
Transicin ejecutada
zazabzbz
(i,
zazabzbz
(p,
S#
zazabzbz
(q,
,S;q,zMNz)
zMNz#
zazabzbz
(q,z,z;q,
MNz#
azabzbz
(q,
aMaNz#
azabzbz
(q,a,a;q,
MaNz#
zabzbz
(q,
zaNz#
zabzbz
(q,z,z;q,
aNz#
abzbz
(q,a,a;q,
Nz#
bzbz
(q,
bNbz#
bzbz
(q,b,b;q,
Nbz#
zbz
(q,
;p,#)
;p,s)
, M;q,aMa)
,M;q,z)
,N;q,bNb)
,N;q,z)
zbz#
zbz
(q,z,z;q,
bz#
bz
(q,b,b;q,
z#
(q,z,z;p,
(q,
,#;p,
ACTIVIDADES OBLIGATORIAS
Construir un diagrama de transiciones para un autmata de pila basado en la siguiente gramtica con
smbolo inicial S.
S
S
S
xSz
ySz
ACTIVIDADES SUGERIDAS
1. Mencione porque las GIC pueden usarse en la construccin de autmatas de pila.
2. Analice las gramticas no restringidas, sensibles y regulares. Mencione si se pueden utilizar en
la construccin de los autmatas de pila.
RECURSOS PARA AMPLIAR EL TEMA
BIBLIOGRAFIA
AUTOEVALUACION.
Construir un diagrama de transiciones para un autmata de pila basado en la siguiente gramtica con
smbolo inicial S y analizar las cadenas correspondientes.
1.
S
S
xSy
xyN
zS
N
N
cualquier rbol de anlisis sintctico de profundidad d puede producir una cadena de longitud mxima m d
(donde la profundidad del rbol es el numero de aristas en la ruta mas larga de la raz a una hoja).
Sea ahora j el numero de smbolos no terminales de G, y elija una cadena de L con longitud mayor que
mj. Entonces, el rbol de anlisis sintctico T para dicha cadena debe tener una profundidad mayor que j.
Esto indica que existe una ruta en T, que va de la raz a una hoja, la cual contiene mas de j no
terminales. Por consiguiente, algn no terminal N debe aparecer por lo menos dos veces en la ruta.
Consideremos el sub-rbol de T cuyo nodo raz es la ocurrencia mas alta de N en esta ruta, y en el cual
la siguiente ocurrencia de N es una hoja (como lo indica la regin sombreada de la figura 2.1). en otras
palabras, consideremos el sub-rbol de T cuya raz es la ocurrencia mas alta de N y luego descartamos
todo lo que queda debajo de la siguiente ocurrencia de N.
Este sub-rbol indica que el patrn vNw se deriva de la primera ocurrencia de N, donde v y w son
concatenaciones de las hojas del sub-rbol a la izquierda y a la derecha de la segunda N,
respectivamente (figura 2.2.). Podemos suponer que v o w debe ser no vaca, pues de lo contrario
podramos eliminar la regin sombreada de la figura 2.2. para obtener el rbol de la figura 2.3,
recortando as la ruta elegida. Sin embargo si pudieran recortase as todas las rutas con longitud mayor
que y, produciramos un rbol de anlisis sintctico para la cadena elegida que tuviera una profundidad
mayor que j, lo cul seria una condicin.
Observe que pueden construirse otros arboles de anlisis sintctico repitiendo un numero arbitrario de
veces las copias del sub-rbol seleccionado, como se muestra en la figura 2.3b. cada uno de estos
arboles de anlisis sintctico representa una cadena que la gramtica G puede generar. Por lo tanto, G
genera cadenas que contienen estructuras de la forma v iNwi para cada entero positivo i. A su vez, debe
existir una cadena en L de la forma suvwt donde sv nuwnt se encuentre en L para cada n N+, como se
afirma en el teorema.
ACTIVIDADES OBLIGATORIAS
1. Menciona 5 actividades donde se limite a los autmatas de pila.
ACTIVIDADES SUGERIDAS
1. Analice si los elementos de los autmatas de pila los limitan a realizar ciertas actividades.
RECURSOS PARA AMPLIAR EL TEMA
BIBLIOGRAFIA
AUTOEVALUACION
1. Mencione un ejemplo donde exista la limitacin de los autmatas de pila y como podra cambiar
ese problema.
5.1. CONCEPTO.
OBJETIVO
Comprender el funcionamiento y las propiedades de la maquina de Turing.
JUSTIFICACIN
Las maquinas de Turing es un tema importante, pero Cmo funcionan? Cul fue el objetivo de su
diseo? Y sobre todo quien lo diseo?
INTRODUCCIN
Analizaremos la maquina de Turing, el objetivo por el cual fue diseada esta maquina y su principal
funcin.
CONTENIDO
La clase de autmatas que ahora se conoce como maquinas de Turing fue propuesta por Alan M. Turing
en 1936. Se disearon para contener todo el poder de los procesos computacionales. La intencin de
Turing fue desarrollar un sistema en el cual fuera posible modelar cualquier proceso que pudiese ser
considerado un calculo.
Una maquina de Turing nunca se ve restringida por la carencia de espacio de almacenamiento, algo que
finalmente debe ocurrir en una maquina real.
Por esto la mayora de los cientficos de la computacin aceptan la tesis de Alan M. Turing: el poder
computacional de una maquina de Turing es tan grande como el de cualquier sistema computacional
posible. Para resolver un problema con un computador, se requiere desarrollar un proceso computacional
(o un algoritmo) que resuelva el problema.
ACTIVIDADES OBLIGATORIAS
1.
OBJETIVO
Analizar la funcin de las maquinas de Turing y los elementos que la forman.
JUSTIFICACIN
Una de las funciones de las maquinas de Turing es como aceptadores de lenguajes, pero Cmo
funcionan? Cules son sus elementos?.
INTRODUCCIN
Las maquinas de Turing como aceptadores de lenguajes estn compuestas por varios elementos, cada
uno de los elementos, veremos a continuacin as como el diagrama de representacin.
CONTENIDO
PROPIEDADES DE LAS MAQUINAS DE TURING
La maquina de Turing contiene un mecanismo de control y un flujo de entrada que concebimos como una
cinta; la diferencia es que las maquinas de Turing que pueden mover su cabeza de lectura hacia delante
y hacia atrs, pueden leer o escribir en la cinta. La cinta tiene un extremo izquierdo pero se extiende
indefinidamente hacia la derecha.
Una maquina de Turing emplea marcas especiales para distinguir porciones de la cinta ( ).
, ,
, i, h) donde:
Nota: i no puede ser h (entonces por lo menos debe existir dos estados)
La semntica de la representacin funcional de una mquina de Turing es la siguiente:
A.
B.
C.
Durante la operacin normal, la maquina de Turing ejecuta transiciones repetidamente hasta llegar al
estado de parada. Existe una anomala: la cabeza de la maquina puede "rebasar" el extremo izquierdo
de la cinta. En este caso la maquina abandonara los clculos y la ejecucin de la maquina sufre una
terminacin anormal.
DIAGRAMA DE TRANSICIONES PARA LAS MAQUINAS DE TURING
Los estados se ilustran con crculos, donde el de inicio se identifica con un apuntador y el estado de
parada con doble circulo.
Los estados se conectan por arcos que representan transiciones posibles, cada arco se rotula con un par
de smbolos separados por una diagonal. El primer smbolo del par representa el smbolo de la cinta que
debe existir en la celda actual para que la transicin se aplique; el segundo smbolo es el que se exhibir
en la celda actual (si la transicin es de escritura) o de lo contrario uno de los smbolos L o R (si la
transicin es una operacin de movimiento).
Ejemplo:
Dados los siguientes datos construir una maquina de Turing.
S={q, p}
={a, b}
={a, b, }
i={p}
h={q}
dado por:
(p, a)=(p, R)
(p, b)=(p, R)
(p, )=(q, )
ACTIVIDADES OBLIGATORIAS
1.
Mencione donde es ms comn encontrar las maquinas de Turing y que funcin desempea.
2.
ACTIVIDADES SUGERIDAS
1.
Mencione que diferencia o similitud existe entre la maquina de Turing, los Autmatas vistos en
unidades anteriores.
Describe que es lo que representa cada uno de los datos que integran la maquina de Turing.
OBJETIVO
Estudiar y comprender la construccin de la maquina de Turing.
JUSTIFICACIN
Despus de la definicin de la maquina de Turing nos lleva a dar el siguiente paso, la construccin de la
maquina, Qu pasos debemos seguir?.
INTRODUCCIN
La maquina de Turing al igual que otras, cuenta para su construccin con los diagramas y la manera de
representarla que los veremos a continuacin.
CONTENIDO
Considere la siguiente mquina definida por:
S={q1,q2}
={a,b}
={a,b, }
i= q1
h= {q2}
y
dado por
(q1,a)=(q1,a,R)
(q1,b)=(q1,a,R)
(q1, )=(q2, ,L)
Diagrama de Transiciones
S={q1,q2,q3}
={a,b}
={a,b, }
i= q1
h= {q3}
y
dado por
(q1,a)=(q1,a,L)
(q1,b)=(q1,b,L)
(q1, )=(q2, ,R)
(q2,a)=(q3,a,L)
(q2,b)=(q3, b,L)
(q2, )=(q3, ,L)
Esta maquina de Turing examinar la cinta hacia la derecha hasta que se encuentre con la primera celda
en blanco. Entonces parara y se colocar sobre el blanco.
Por lo tanto tenemos la siguiente configuracin:
(q1,aababb) (q1,aababb) (q1,aababb) (q1,aababb) (q1, aababb) (q2,aababb) (q3, aababb)
DIAGRAMA DE TRANSICIONES
ACTIVIDAES OBLIGATORIAS
1.
dado por
(q1, a) = (q1, c, R)
(q1, b) = (q2, a, L)
(q2, b) = (q2, , R)
(q2, c) = (q2, a, L)
(q2, ) = (q3, , R)
(q3, b) = (q3, c, R)
(q3, c) = (q4, b, L)
(q3, ) = (q4, ,R)
ACTIVIDADES SUGERIDAS
1.
Coleccin de estados.
b. Alfabeto de la maquina.
c.
Smbolos de la maquina.
h= {q3}
y
dado por
(q1, a) = (q1, b, R)
(q1, b) = (q2, b, L)
(q1, a) = (q2, c, L)
(q1, c) = (q1, a, R)
(q2, b) = (q2, a, R)
(q2, a) = (q3, c, R)
(q2, c) = (q3, a, L)
(q2, ) = (q4, ,R)
OBJETIVO
Analizar el problema general de las maquinas de Turing.
JUSTIFICACIN
En las maquinas de Turing es comn encontrarse con un problema, este tipo de problemas nos llevan a
analizar con mas detalle las Maquinas de Turing.
INTRODUCCIN
No todos los lenguajes son aceptados por las maquinas de Turing, con el estudio de este tema nos
daremos cuenta de los lenguajes que pueden ser aceptados por la maquina y de aquellos que no lo
pueden ser. Estudiaremos el problema mas comn de las maquinas de Turing como lo es el problema de
la parada.
CONTENIDO
El problema de la parada es un problema general para todas las maquinas de turing, este problema ser
la clave para tratar la resolubilidad.
Una cadena w sobre algn alfabeto es aceptada por una maquina de turing M, cuando una que empez
con w en la cinta de M y con M en su estado inicial, termina con M en su estado final, por otro lado w
puede ser rechazada de dos formas, ya sea por que M para en algn estado que no es de aceptacin o
porque M nunca para. Los dos mtodos de rechazo de cadenas no son equivalentes. Por lo tanto hemos
definido los lenguajes recursivamente enumerables como los lenguajes que son aceptados por una
maquina de turing de alguna forma y los lenguajes recursivos como los lenguajes aceptados por alguna
maquina de turing que siempre para sobre alguna entrada.
Un lenguaje L sobre un alfabeto S se dice que es recursivamente enumerable si es aceptado por alguna
maquina de turing. Es decir, L es recursivamente enumerable si es aceptado por alguna maquina de
turing M.
Un lenguaje L es recursivo si L es recursivamente enumerable y hay alguna maquina de turing que pare
sobre todas las entradas que acepta L.
ACTIVIDADES OBLIGATORIAS
1. Investigue como se puede solucionar el problema de la parada.
ACTIVIDADES SUGERIDAS
1. Mencione dos ejemplo de lenguajes enumerables y lenguajes recursivos.
RECURSOS PARA AMPLIAR EL TEMA
BIBLIOGRAFIA
AUTOEVALUACION