Está en la página 1de 94

INSTITUTO TECNOLOGICO SUPERIOR SDE ZAPOPAN

DIVISION DE INGENIERIA EN SISTEMAS COMPUTACIONALES

INGENIERIAS EN SISTEMAS COMPUTACIONALES

Manual de prcticas
TEORIA DE LA COMPUTACION

MSI. Armandso Ramos Barajas Junio 2010


MODULO 0. PRELIMINARES MATEMATICOS

0.1. TEORA DE CONJUNTOS.


0.2. OPERACIONES CON CONJUNTOS.
0.3. ALFABETO, PALABRAS Y LENGUA JES.
0.4. OPERACIONES CON CADENAS.

0.1. TEORA DE CONJUNTOS

OBJETIVO

Comprender las definiciones que se emplearan a lo largo de este curso, as como su


contenido y diferencia.

JUSTIFICACIN

Este tema es desarrollado para definicin y conocimiento de los conceptos que se


mencionaran a lo largo de este curso as como su funcin y contenido.

INTRODUCCIN

En nuestro universo existe una infinidad de conjuntos, todas las cosas que percibimos a
nuestro alrededor por medio de los sentidos, hacen que cada objeto se clasifique por sus
caractersticas esenciales dentro de un conjunto especifico.

CONTENIDO

Conjunto: coleccin de objetos llamados elementos del conjunto los cuales van separados
por comas y entre llaves.

L={a,b,c,d}

EJEMPLO DE CONJUNTO.

b L especifica que b es un elemento del conjunto L


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,....., } o conjunto de enteros no


negativos.

Otra manera de especificar un conjunto es por referencia a otros conjuntos y a propiedades


que pueda o no tener G={x|x I"and"x 2}.

Sub-conjunto: un conjunto es sub-conjunto de otro s cada elemento de A es tambin


elemento de B; se especifica A B y se dice que A es un sub-conjunto de B.

Ejemplo:

A = {1,2,3} y B = {0,1,2,3,4,5} se tiene A B, pero B no es sub-conjunto de A porque los


elementos 0, 4 y 5 de B no son los de A.
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( ): Es sub-conjunto de todos los conjuntos.

ACTIVIDADES OBLIGATORIAS

Representar cada uno de los siguientes conjuntos:

1. El conjunto de enteros no negativos menores que 4.


2. El conjunto de dinosaurios vivos en el Museo Nacional de Antropologa e Historia.
3. El conjunto de enteros mayores que 3.

ACTIVIDADES SUGERIDAS

1. Represente el conjunto de los nmeros pares y el conjunto de los nmeros pares


mayores de 10 y menores de 20.
2. Si A B donde, A={azul, rojo, negro} y B={naranja, caf, azul, rosa, rojo, blanco,
negro, verde}. Realizar el diagrama correspondiente.
3. El conjunto de libros en la biblioteca del CUCI en este momento.

RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

1. Las caractersticas particulares de un elemento hacen que este se clasifique dentro


de:
2. Cuantos y cuales son los tipos de conjuntos?.
3. Represente el conjunto de nmeros enteros positivos mltiplos de 2 pero no de 4.
4. Represente el conjunto de nmeros mayores de 100 y menores de 1.
5. Cuales son las caractersticas primordiales que podemos mencionar al decir que
un conjunto A es sub-conjunto de B?.
0.2. OPERACIONES CON CONJUNTOS.

OBJETIVO

Analizar las diferentes operaciones que se pueden realizar con los conjuntos del universo y
sus elementos.

JUSTIFICACIN

Las diferentes operaciones que se pueden realizar con los conjuntos y sus elementos nos
demuestran que los conjuntos tienen ciertas cualidades que se pueden aplicar para una
solucin real y completa de los problemas que se nos pueden presentar.

INTRODUCCIN

Existen operaciones que nos permiten crear nuevos conjuntos a partir de otros conocidos.
Esos conjuntos adquieren caractersticas de uno y otro conjunto pero no ser idntico a uno
solo conjunto.

CONTENIDO

Unin (U): la unin de dos conjuntos es el conjunto que tiene como elementos aquellos que
son elementos de al menos uno de los conjuntos y tal vez de ambos AUB={x|x A or x B}.

Ejemplo:

A={a,b,c,d} B={b,c,d,e} AUB={a,b,c,d,e}

Interseccin ( ): la interseccin de dos conjuntos es la coleccin de elementos que los dos


conjuntos tienen en comn A B={x|x A and x B}.

Ejemplo:

A B={b,c,d}

Nota: dos conjuntos son disjuntos si no tienen elementos en comn, si su interseccin es el


conjunto vaco.

Diferencia (-): la diferencia de dos conjuntos A y B, denotada por A-B es el conjunto de


elemento de A que no son elementos de B. A-B={x|x A and x B}.

Ejemplo:

A={0,2,4,6,8,10} B={1,2,3} A-B={0,4,6,8,10} y B-A={1,3}

Producto cartesiano (x): Producto cartesiano es el conjunto de pares ordenados de los que
el primer elemento proviene de A y el segundo de B. AXB={(a,b)| a A y b B}

Ejemplo:

A={1,2,3} y B={5,6}

AXB={(1,5)(2,5)(3,5)(1,6)(2,6)(3,6)}

Conjunto potencia: el conjunto potencia de un conjunto A es el conjunto de todos sus sub-


conjuntos se denota por An. An={B|B A}.

ACTIVIDADES OBLIGATORIAS.

1. Realice el producto cartesiano de los siguientes conjuntos A={a, b, c, e}; B={1, 2, 3}.
2. Con los siguientes conjuntos X={1,2,3,5,7,11}; Y={1,2,4,6,8,10,12}; Z={1,3,5,7,9,11};
realice las siguientes operaciones.

XUYUZ=

X Y Z=

3. Realice las operaciones de (X-Y) y (Y-X) entre los conjuntos X={0,1,2,3,5,7};


Y={0,2,4,6,8,10,12,14,16}.

ACTIVIDADES SUGERIDAS

Demuestre si las siguientes leyes son verdaderas o falsas.


RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

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. AB=BA
l. A-B=B-A
m. A*B=B*A
0.3. ALFABETOS PALABRAS Y LENGUAJES

OBJETIVO

Analizar las diferencias que existen entre las maneras de representar caracteres o cadenas de
caracteres.

JUSTIFICACIN

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,1,2,3,4,5,6,7,8,9} podemos decir que 0 pertenece a ,0 .

Cadena o palabra: secuencia finita de smbolos tomados de un determinado alfabeto.

Ejemplo:

A,b,c son smbolos y abcb es una cadena.

Longitud de una cadena w se denota por |w|. La longitud |abcb|=4, | |=

Cadena vaca( ): Es una palabra sobre cualquier alfabeto. Es una secuencia vaca de smbolos
tomados de cualquiera que sea el alfabeto en cuestin.

Lenguaje (formal): es un conjunto de cadenas de smbolos tomados de algn alfabeto.

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, * es finito (ya que los alfabetos son no vacos).

ACTIVIDADES OBLIGATORIAS

1. Indique si las siguientes expresiones pertenecen a un alfabeto, palabra, lenguaje o a ninguna de


las anteriores.

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

1. Qu es una secuencia de smbolos?.


2. Mencione el alfabeto del lenguaje de programacin de C.
3. Mencione la diferencia entre alfabeto, cadena y lenguaje.
4. La palabra sobre cualquier alfabeto es:
5. El lenguaje compuesto por ninguna cadena es:
6. Qu es un palndromo?
7. .
0.4. OPERACIONES CON CADENAS

OBJETIVO

Analizar las operaciones que se pueden realizar con diferentes tipos de cadenas o smbolos.

JUSTIFICACIN

Las diferentes operaciones que se pueden realizar con cadenas de caracteres o smbolos nos muestran
que hay una manera diferente de obtener nuevas palabras raras y en ocasiones divertidas.

INTRODUCCIN

Al igual que los conjuntos las operaciones con cadenas son casi las mismas, la diferencia es que las
operaciones con cadenas son mas variadas, no solamente es la unin, concatenacin, sino que adems
podremos analizar otras como lo son prefijo, la longitud, etc. Cada una de ellas nos darn diferentes
resultados.

CONTENIDO

Longitud: si una cadena w es una cadena sobre cualquier alfabeto, su longitud se denota por el smbolo
|w| y la longitud es l numero de smbolos que tiene la cadena.

Ejemplo:

Si w=121 sobre el alfabeto ={1,2}, entonces |w|=3, la cadena vaca , no tiene smbolos | |= .

Concatenacin: si w y z son cadenas, la concatenacin de w con z es la cadena que se obtiene al aadir


a la cadena w la cadena z. Se denota como wz o w z.

Ejemplo:

W = "banana" y z ="rama" wz = "bananarama".

Se tiene que |w z|=|w|+|z|

Nota: La concatenacin de e con cualquier palabra w, no modifica a la palabra w.


Potencia: sea w una palabra, la potencia se define como sigue

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

1. Para todo lenguaje A Qu es A ? Y Por que?


2. A={libreta, lpiz, libro}; B={ma, amarillo, viejo} . Obtener A B, A A, A B B.
3. W=monitor, Z=teclado, X=gabinete Y= . Con las palabras anteriores realizar las siguientes
operaciones.

1. Y3 =
2. |Y| =
3. |X| =
4. W Z X=
5. W 3=
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

1. A={ , ab} y B={c}. cuntas cadenas hay en An B para un n arbitrario?


2. Sean A={ }, B={a,b,c,d}, C={ ,a,b} y D= . Obtener

a) AUB

b) AUC

c) AUD

d) BUD

e) A B

f) B C

g) C D

h) A D

1. A = { , ab}Obtener An para un n arbitrario.


2. Cules son los smbolos de la cadena ?
MODULO 1. GRAMATICAS Y LENGUAJES FORMALES

1.1. CONCEPTOS GENERALES.


1.2. DISEO DE GRAMATICAS.
1.3. JERARQUIA DE CHOMSKY.
1.4. ARBOLES DE DERIVACION.
1.5. APLICACIN EN EL DISEO DE COMPILADORES.
1.6. FORMA NORMAL DE CHOMSKY.
1.1. CONCEPTOS GENERALES

OBJETIVO

Analizar los conceptos que sern utilizados en las gramticas y los lenguajes formales.

JUSTIFICACIN

El entendimiento de los conceptos utilizados en este modulo nos ayudara a identificar cuando hablamos
de una gramtica o de algn lenguaje.

INTRODUCCIN

Las gramticas y los lenguajes formales tienen caractersticas nicas que las distinguen. No solo existe
un tipo de lenguaje, ni un solo tipo de gramtica. Estudiaremos los diferentes analizadores de gramticas
y su estructura.

CONTENIDO

Lenguaje natural: es aquel lenguaje que ha evolucionado con el tiempo para fines de la comunicacin
humana. Ejemplo: espaol, ingles, francs, etc. Pocas veces se ajusta a reglas gramaticales sencillas u
obvias.

Lenguajes formales: estn definidos por reglas gramaticales preestablecidas y se ajustan con rigor a
ellas. Ejemplo: los lenguajes de programacin de computadoras y los lenguajes matemticos, como el
lgebra y la lgica de proposiciones. Gracias a las reglas es posible construir traductores
computarizados eficientes para los lenguajes de programacin, a su vez la falta de observancia de reglas
establecidas dificulta la construccin de un traductor para un lenguaje natural.

Importancia de las gramticas en el proceso de traduccin.

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.

Figura 1.1 proceso bsico de traduccin.

ACTIVIDADES OBLIGATORIAS

Investigue tipos de compiladores y su fase.

ACTIVIDADES SUGERIDAS

Mostrar un ejemplo que mencione los analizadores lxicos y sintcticos.

RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

Menciona por lo menos tres ejemplos de cada uno de los siguientes conceptos:

Lenguaje natural.
Lenguaje formal.
Analizador lxico.
Analizador sintctico.
1.2. DISEO DE GRAMATICAS

OBJETIVO

Estudiar y analizar el diseo de las gramticas, sus componentes y estructura.

JUSTIFICACIN

Para el diseo de una gramtica se debe tener conocimiento previo de sus componentes y de los pasos
que se deben seguir para llegar al resultado deseado.

INTRODUCCIN

Estudiaremos las gramticas, as como la descomposicin de frases, la descomposicin de cadenas y


cada uno de los componentes de las gramticas y la estructura de debe llevar cada descomposicin de
cadena.

CONTENIDO

A continuacin se vera un ejemplo de un lenguaje natural, donde se emplean reglas gramaticales para
distinguir aquellas cadenas de smbolos que constituyen enunciados aceptables de las que no.

Una frase sencilla en espaol es una estructura con un sujeto seguido de un predicado. El sujeto podra
ser un nombre sencillo, el predicado podra ser un verbo intransitivo o un verbo transitivo seguido de un
objeto. Esta descomposicin descendente podra continuar hasta llegar a un nivel de detalle donde se
describiran los smbolos literales de una frase en espaol. A continuacin se muestra esta
descomposicin.
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.
Gramtica: es la coleccin de no terminales y terminales junto con un smbolo de inicio y un conjunto
finito de reglas de reescritura. Se basa en la composicin de cadenas en trminos de frase donde cada
frase esta termina representada por un no terminal.

Formalmente una gramtica, se define como una cudrupla (V, T, R, S) donde:

V: conjunto finito de no terminales.

T: conjunto finito de terminales.

R: conjunto finito de reglas de reescritura.

S: inicio.

Los lados derecho e izquierdo de las reglas de reescritura de una gramtica, pueden ser cualquier
combinacin de terminales y no terminales, siempre y cuando el lado izquierdo contenga por lo menos
un no terminal.

El lado derecho de alguna regla de reescritura puede consistir en una cadena vaca, en este caso la
regla significa que el patrn representado por el lado derecho de la regla puede ser la cadena vaca, esta
regla se llama regla l

Distinguiremos los no terminales con letras maysculas y a los terminales con letras minsculas. Una
regla S xN significa que el no terminal S se puede derivar con el terminal x seguido por el no terminal
N.

ACTIVIDADES OBLIGATORIAS

1. Genere la frase "Ana quiere golpear a Carlos" a partir de la gramtica de la figura 1.2.
2. Genere la frase "Ana quiere patinar" a partir de la gramtica de la figura 1.2.

ACTIVIDADES SUGERIDAS

1. A partir de la frase "el cielo esta nublado." generar la gramtica correspondiente.


RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

1. Obtenga una gramtica estructurada para la declaracin de una variable en el lenguaje C.


2. Derivar "float ab_c3;"

1.3. JERARQUA DE CHOMSKY

OBJETIVO

Estudiar y comprender la clasificacin de gramticas y la diferencia que existe entre ellas.

JUSTIFICACIN

Tener un conocimiento amplio de las gramticas y el lenguaje que se emplea en cada una de ellas, es
una herramienta mas para la realizacin de los analizadores.
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 LENGUAJE QUE GENERA


Regular 3 Lenguaje tipo 3 o lenguaje regular
Independiente del Lenguaje de tipo 2 o lenguaje independiente al
2
contexto contexto
Sencible al contexto 1 Lenguaje tipo 1 lenguaje sensible al contexto.
Tipo no restringido 0 Tipo cero lenguaje 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 yX
X y
X

Las siguientes regla de reescritura no estaran permitidas en una gramtica regular.

Ejemplo:
yW X
X xZy
YX WvZ

En una gramtica regular cualquier regla de la forma N x podra remplazarse con el par de reglas
siguientes:

N xX
X

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 =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.

se interpreta como "derivar", "produce" o "genera".

Gramticas independientes del contexto.

A diferencia de las gramticas regulares, estas gramticas no tienen restricciones con respecto a la
forma del lado derecho de sus reglas de reescritura aunque aun se requiere que el lado izquierdo de
cada regla sea un no terminal. La siguiente es una gramtica independiente del contexto, pero no es
regular.

S zMNz
M aMa
M z
N bNb
N z

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

1. Mediante la siguiente gramtica, derivar

S aE
E A
E B
A b
A Aa
B 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 aS
S bT
T aT
T

7. Dada la siguiente gramtica derive baab, bbba, abab

S bA
A aA\b\

ACTIVIDADES SUGERIDAS
1. Dada la siguiente gramtica derive xyz, yzrr, yyzr

S xT
S yT
T yU
U zW
W rX
X
w

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 yX
X xxX
X yY
Y

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 xS
S y
S z
S

RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

1. Derivar por la izquierda y derecha la siguiente cadena bbabaaba

S AA
A AAA
A a
A bA
A Ab

1. Derivar las siguientes cadenas aabbaa, abaaa, aaaa y aabba.

S Aas
S a
A SbA
A SS
A ba

1. La siguiente gramtica es independiente del contexto?.

S yX
X yZ
Z Xx
X Yy
Y

1. Dada la siguiente gramtica independiente del contexto derivar a2b3 por derecha e izquierda
derivar a5

S AB
A aA\a
B bB\b

1. Derivar abaca por izquierda y derecha

S SbS\ScS\a

1.4. RBOL DE DERIVACIN

OBJETIVO

Analizar diferentes arboles de derivacin y sus semejanzas con la forma normal de Chomsky.

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 zMNz
M aMa
M z
N bNb
N z

S zMNz aMaNz zazaNz zazabNbz zazabzbz

ACTIVIDADES OBLIGATORIAS.

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.

a. Derivar la cadena babaaba.

S AA
A
AAA\a\bA\Ab
b. Considere la gramtica G=({S,A},{a,b},P,S) en donde P consiste en:

S aAS\a
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)

RECURSOS PARA AMPLIAR EL TEMA.

BIBLIOGRAFIA

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.

a. Derivar a2b3 por la derecha y por la izquierda.

S AB
A aA\a
B bB\b

b. Derivar a5 por la derecha e izquierda.

S SbS\ScS\a

1.5. APLICACIN EN EL DISEO DE COMPILADORES

OBJETIVO

Analizar el campo de aplicacin de las gramticas y los lenguajes formales.

JUSTIFICACIN

El analizar las gramticas y los lenguajes formales no es solamente asimilar la teora, es importante
estudiar en que ocasiones de nuestra vida cotidiana los podemos utilizar y llevarlo a la practica.

INTRODUCCIN

Las gramticas y los lenguajes formales son un tema muy amplio de aplicacin, dentro del rea de los
compiladores son un elemento esencial para la realizacin de los analizadores lxicos.

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. Mencione que relacin tienen las gramticas con los compiladores.


2. Mencione como podemos aplicar los arboles de derivacin en el diseo de compiladores.

ACTIVIDADES SUGERIDAS

1. Por medio de las gramticas y de los arboles de derivacin disee un pequeo compilador.

RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

1. Mencione cual es la tarea que realiza el analizador lxico y sintctico.


2. Mencione una de las principales aplicaciones de los analizadores lxicos y sintcticos.

1.6. FORMA NORMAL DE CHOMSKY

OBJETIVO

Comprender la manera en que podemos convertir una gramtica independiente del contexto a una
gramtica de la Forma Normal de Chomsky.

JUSTIFICACIN

Las gramticas tienen ciertas similitudes, pero cuando no es as es necesario realizar una serie de pasos
los cuales nos permitan obtener dos gramticas diferentes y que lleguen al mismo resultado.

INTRODUCCIN

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 XM
M SY
X x
Y y

Mientras que la siguiente gramtica que genera el mismo lenguaje no la tiene

S xSy
S xy

Pasos para obtener la forma normal de Chomsky

Considere la siguiente gramtica

S zMz
M N
M yMy
N x

S zMz zyMyz zyNyz zyxyz

Paso 1

Introducir los nuevos no terminales YZ y convertir la gramtica anterior en la siguiente:

S ZMZ
M N
M YMY
Z z
Y y
N x

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 ZR
R MZ
M N
M YP
P MY
Z z
Y y
N x

Paso 3

Finalmente la regla M N se reemplaza por la regla M x, produciendo as la siguiente gramtica ya


que tiene la forma normal de Chomsky.

S ZR
R MZ
M x
M YP
P MY
Z z
Y y
N x

S ZR zMZ zYPZ 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 aNa
N M
N bNb
M x

b.

S xSy
S wNz
N S

ACTIVIDADES SUGERIDAS

De las siguientes gramticas mencione cual tiene la forma normal de Chomsky.

a.
A ABC
A aC
B b
C c

b.

S XY
X a
Y xSy

c.

S MN
M a
N b

d.

S NM
N MS
M b

e.

A XZ
Z AY
X a
Y b

RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

1. Considere la Gramtica Independiente del Contexto y convierta a la Forma Normal de Chomsky.

S bA\aB
A bAA\aS\a
B aBB\bS\b

2. Convertir las siguientes GIC a la FNC, que genere el mismo lenguaje.

a.

S AB\CA
A a
B BC\AB
C -aB\b

b.

S ic+S
S ic+SeS
S s

MODULO 2. MAQUINAS DE ESTADO FINITO

2.1. CONCEPTO.
2.2. REPRESENTACION.
2.3. APLICACIONES.
2.1. MAQUINAS DE ESTADO FINITO (SECUENCIALES)

OBJETIVO

Analizar los elementos que forman una maquina de estado finito, as como su funcin.

JUSTIFICACIN

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:


I: alfabeto que representan los smbolos de entrada.
S: representacin de los estados que componen la maquina.
O: alfabeto que representa los smbolos de salida.
: transformacin de SXI (funcin de estado siguiente)
: transformacin de SXI (funcin de salida).

Se supone que la maquina esta en un estado inicial S.

Modelo de una maquina de estado finito

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 a1 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

= funcin de salida SXI=O definida por:

(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

1. En un compilador mencione que representan los smbolos de entrada, estados internos y


smbolos de salida.
.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.

a b

q0 q1,x q2
q1 q2,x q1,z
q2 q0,z q1,y

CADENAS, CINTAS DE ENTRADA Y DE SALIDA

Suponga que q0 es el estado inicial de la maquina del ejemplo anterior y adems se da la cadena de
entrada abaab. Calculamos la cadena de estado y la cadena de smbolos de salida del diagrama
comenzando en el vrtice q0 y siguiendo las flechas que se rotulan con los smbolos de entrada abaab.

Cadena de estados=q0 q1 q1 q2 q0 q2

Cadena de salida = x z x z y
ACTIVIDADES OBLIGATORIAS

1. Considere la siguiente maquina de estado finito con smbolos de entrada a, b, c y smbolos de


salida x, y, z.

a. Encuentre la funcin de prximo estado


b. Encuentre la funcin de salida
c. Construya la tabla de estado
d. Encuentre la cadena de salida si la entrada es la cadena w=caabbaccab

2. Sea M la maquina de estado finito con la siguiente tabla de estados

a b

q0 q1,x q2,y
q1 q3,y q1,z
q2 q1,z q0,x
q3 q0,z q2,x

a. Encuentre la funcin de prximo estado


b. Encuentre la funcin de salida
c. Dibuje el diagrama de estado de M dado el estado inicial q0.
d. Encuentre la cadena de salida si la entrada es la cadena w=aabbabbaab

ACTIVIDADES SUGERIDAS

1. Considere la siguiente maquina de estado finito con smbolos de entrada a, b, c y smbolos de


salida x, y, z.
a. Encuentre la funcin de prximo estado
b. Encuentre la funcin de salida
c. Construya la tabla de estado

Encuentre la cadena de salida si la entrada es la cadena w=baababac

2. Sea M la maquina de estado finito con la siguiente tabla de estados

a b c

q0 q1,x q0,x q2,y


q1 q0,y q2,z q2,z
q2 q2,x q0,x q1,z

a. Encuentre la funcin de prximo estado


b. Encuentre la funcin de salida
c. Dibuje el diagrama de estado de M dado el estado inicial q0.

Encuentre la cadena de salida si la entrada es la cadena w=bcabaacccbab

RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

1. Considere la siguiente maquina de estado finito con smbolos de entrada a, b y smbolos de


salida x, y, z. Obtener:

a. Funcin de prximo estado.


b. Funcin de salida
c. Tabla de estados
d. La cadena de salida si la entrada es la cadena w=abaabbabbaabaa

1. Considere la siguiente maquina de estado finito con smbolos de entrada a, b y smbolos de


salida x, y, z. Obtener:

a. Funcin de prximo estado.


b. Funcin de salida
c. Tabla de estados
d. La cadena de salida si la entrada es la cadena w=abaabbabbaabaa

1. Investigar ejercicios de maquinas de estado finito con su respectiva solucin.

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.
3.2. CONCEPTOS ESPECIFICOS.
3.3. RELACIN Y DIFERENCIA CON LAS MAQUINAS DE ESTADO FINITO.
3.4. APLICACIONES EN GENERAL.
3.5. AUTMATAS FINITOS: DETERMINISTA Y NO DETERMINISTA.
3.6. RELACIN ENTRE AUTMATAS FINITOS Y GRAMTICAS REGULARES.
3.7. EXPRESIONES REGULARES.
3.8. LIMITACIONES DE LOS AUTMATAS DE ESTADO FINITO.
3.1. AUTMATAS DE ESTADO FINITO(AF)

OBJETIVO

Analizar los autmatas de estado finito y sus componentes, as como las diferentes formas de
representarlos.

JUSTIFICACIN

La definicin de los autmatas de estado finito es un tema importante, el entendimiento de este


tema es fundamental para el desarrollo y contenido de los autmatas.

INTRODUCCIN

La definicin de los autmatas de estado finito nos mostrara cada uno de los elementos que lo
forman, as como la manera en que podemos representarlos.
CONTENIDO

Un autmata finito M consta de 5 elementos:

1.- un conjunto finito A de smbolos de entrada.


2.- un conjunto finito S de estados internos.
3.- un sub-conjunto T de S (cuyos elementos se llaman estados de aceptacin).
4.- un estado inicial q0 en S
5.- una funcin de estado prximo F de S*A en S.

El autmata M se denota por M=<A,S,T,q0,F> cuando queremos designar sus 5 partes.

Ejemplo: lo siguiente define un autmata finito con dos smbolos de entrada y tres estados.

A={a , b}, smbolo de entrada

S={q0,q1,q2}, estados

T={q0,q1}, estados de aceptacin

q0 estado inicial

La funcin de estado prximo F: s*a, s definida por la siguiente tabla:

a b

q0 q0 q1
q1 q0 q2
q2 q2 q2

podemos describir concisamente un autmata finito M por su diagrama de estado como se hizo con
las maquinas de estado finito excepto que usaremos crculos dobles para estados de aceptacin, y
cada segmento se rotula solamente con el smbolo de entrada especficamente el diagrama de
estado D de M es un grafo dirigido rotulado cuyos nodos son los estados de S; tambin el estado
inicia q0 se denota poniendo una flecha que entra al nodo q0. Por ejemplo el diagrama de estado
para el autmata M del ejemplo anterior seria el siguiente:

Decimos que M reconoce o acepta la cadena w si el estado final, Sn, es un estado de aceptacin o
sea si Sn T. L(M) denotara el conjunto de las cadenas que reconoce M. Por ejemplo, se puede
mostrar que el autmata M anterior reconocer aquellas cadenas que no tienen dos b sucesivas.

ACTIVIDADES OBLIGATORIAS

1. Mencione 5 actividades donde se desempeen los autmatas de estado finito.


2. Mencione que relacin tienen las maquinas de estado finito con los autmatas de estado
finito y cuales son sus diferencias.

ACTIVIDADES SUGERIDAS

1. Describe la manera en que trabajan los autmatas de estado finito.


2. Cual es la importancia de los autmatas de estado finito en el desarrollo de la tecnologa.

RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

1. Realice el diagrama correspondiente a partir de los siguientes datos.

A={a, b, c}, smbolo de entrada

S={q0, q1, q2, q3}, estados

T={q0,q1}, estados de aceptacin

q0 estado inicial

La funcin de estado prximo F: s*a, s definida por la siguiente tabla:

a b c

q0 q1 q3 q2
q1 q1 q3 q0
q2 q3 q0 q1
q3 q2 q1

2. A partir del siguiente diagrama determine:

Los smbolos de entrada.


La funcin de prximo estado.
Los estado internos del diagrama.
Los estados de aceptacin.El estado inicial.
3.2. CONCEPTOS ESPECFICOS

OBJETIVO

Definir los conceptos necesarios para la identificacin de cada uno de los elementos que se analizaran a
lo largo de este modulo.

JUSTIFICACIN

El conocimiento de cada uno de los conceptos que se utilizaran, son una herramienta muy importante,
debido a que se entender de los que estaremos hablando en cada tema.

INTRODUCCIN
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

3.3. RELACIN Y DIFERENCIA CON LA MAQUINA DE ESTADO FINITO

OBJETIVO

Analizar la diferencia que existe entre los autmatas finitos y la maquina de estado finito.

JUSTIFICACIN

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.

3.4. APLICACIONES EN GENERAL

OBJETIVO

Comprender el amplio campo de aplicacin que tienen los autmatas, su funcionamiento y la manera de
representarlos.

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.

letra dgito FDC


q1 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
Leer el sig. Smbolo del flujo de entrada;
Case smbolo of
Letra: entrada:= letra;
Dgito: entrada:= digito;
Marca fin de cadena: entrada:= FDC;
Ninguno de los anteriores: salir a la rutina de error;
Estado:= tabla [estado, entrada];
If Estado= Error then salir a la rutina de error;
Until Estado=Aceptar

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 . E + - FDC
1 2 Error Error Error Error Error
2 2 3 5 Error Error Error
3 4 Error Error Error Error Error
4 4 Error 5 Error Error Aceptar
5 7 Error Error 6 6 Error
6 7 Error Error Error Error Error
7 7 Error Error Error Error Aceptar

Figura 1.7 Analizador lxico basado en la tabla de transiciones de la figura 1.6.

Estado:=l;
Repeat
Leer el siguiente smbolo del flujo de entrada;
Case smbolo of
0 a 9: entrada:="digito";
marca de fin de cadena: entrada:="FDC";
,E,t,-:entrada:="smbolo";
ninguno de los anteriores: salir a la rutina de error;
estado:=tabla [Estado, entrada];
if Estado="error" then salir a la rutina de error;
until Estado ="aceptar"

Otra aplicacin de los AF, es que dentro de la programacin de computadoras un problema comn, es el
de tener la seguridad de que los datos de un programa son correctos. Por ejemplo, si se espera un
entero sin signo como datos de entrada y el usuario confunde uno de los dgito con un carcter no
numrico se puede dar todo tipo de resultados impropios, desde una terminacin anormal hasta el
calculo de resultados incorrectos (basura). La programacin cuidadosa pretende construir un programa
"a prueba de balas" , incluyendo unas rutinas de entrada que analicen la informacin introducida por el
usuario y, de alguna forma, impedir que se aplique informacin incorrecta al programa.

APLICACIONES EN INTELIGENCIA ARTIFICIAL

Las maquinas de estado finito tienen un gran futuro en la aplicacin en inteligencia artificial. En la
inteligencia artificial su principal objetivo es la creacin de un agente inteligente que sea capaz de actuar
y razonar como un humano. Para la creacin de este agente es necesario contar con un total
conocimiento de la gramtica y los lenguajes formales que se requiere que el agente utilice, para esto
debe contar un una maquina que sea capaz de aceptar los smbolos y reconocer las cadenas que se
estn usando.

APLICACIONES EN ELECTRONICA

Las maquinas de estado finito son importantes en la aplicacin en la electrnica, como la hemos
mencionado anteriormente estas maquinas son aceptadores de smbolos las aplicaciones mas
importantes que tenemos en la electrnica es en la creacin de los circuitos, ya que tiene que reconocer
que una cadena de smbolos se idntica a otra y as dejar pasar los datos.

Este tipo de maquinas los podemos encontrar como lo es en los semforos, en los circuitos integrados,
en los apagadores automticos de luz, en los sistemas automticos de riego, ect.
ACTIVIDADES OBLIGATORIAS

1. Construya una tabla de transiciones a partir del siguiente diagrama y escriba un analizador lxico
basado en esa tabla

2. Que papel juegan los autmatas de estado finito en la robtica.


3. Investigue que actividades de importancia juegan los autmatas de estado finito en IA y en
electrnica.

ACTIVIDADES SUGERIDAS

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. Desarrolle el AF que acepte I={1,2,3,4,5,6,7,8,9}.{0,1,2,3,4,5,6,7,8,9}* (numero enteros sin


signo), la tabla de transiciones, as como el analizador lxico.

1. Construya una tabla de transiciones a partir del siguiente diagrama y escriba un analizador lxico
basado en esa tabla
3.5. AUTMATA FINITO DETERMINISTA

OBJETIVO

Estudiar los autmatas finitos deterministas y los autmatas finitos no deterministas, los elementos que
los forman as como la realizacin de sus diagramas y su funcionamiento.

JUSTIFICACIN

El estudio de los autmatas finitos deterministas es un tema importante para el anlisis de cadenas, el
analizar las cadenas implica mas de un estado y un anlisis minuciosos de cada elemento de
determinada cadenas.

INTRODUCCIN

En este tema analizaremos los dos tipos de autmatas deterministas y no deterministas, veremos cada
uno de los elementos y restricciones de estos autmatas y en que consiste cada uno de ellos.

CONTENIDO

Esta maquina consiste en un dispositivo que puede estar en cualquiera de un numero finito de estados,
uno de los cuales es el estado inicial y por lo menos uno es el estado de aceptacin. A este dispositivo
esta unido un flujo de entrada por medio del cual llega una secuencia de los smbolos de un alfabeto
determinado. La maquina tiene la capacidad para detectar los smbolos conforme llegan y, basndose en
el estado actual y el smbolo recibido, ejecutar una transicin(de estado) que consiste en un cambio a
otro estado o la permanencia en el estado actual.

La determinacin de cual ser precisamente la transicin que ocurra al recibir un smbolo depende del
mecanismo de control de la maquina, programado para conocer cual debe ser el nuevo estado
dependiendo de la combinacin del estado actual y el smbolo de entrada. La palabra "finito" se refiere a
que la maquina solo tiene un numero finito de estados. En ocasiones tambin se les menciona a estas
maquinas como Autmatas Deterministas de Estados Finitos.

Formalmente un autmata finito determinista consiste en una quntupla (S, , ,i,F) donde:

S: es un conjunto finito de estados.


: es el alfabeto de la maquina.
: es una funcin(funcin de transicin) de SXS a S
i: estado inicial(un elemento de S)
F: conjunto de estados de aceptacin (sub-conjunto de S)

DIAGRAMA DE TRANSICIONES DETERMINISTA

Para representar un programa en el mecanismo de control utilizamos un diagrama de transiciones cuyos


estados representan los estados de la maquina y cuyos arcos representan una posible transicin de la
maquina. Por lo tanto, los estados de inicio y aceptacin del diagrama corresponden a los estados de
inicio y aceptacin del autmata.

Un diagrama para un AFD aceptara si y solo si su estado inicial es tambin un estado de aceptacin.

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:

Aadimos un estado que representara un papel de captacin global

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.
Diagrama modificado del ejemplo 1.

Diagrama modificado del ejemplo 2.

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:

S es un conjunto finito de estados.


es el alfabeto de la maquina
p es un sub-conjunto de SXS XS llamada relacin de transiciones.
i es le estado inicial (un elemento de S)
F es la coleccin de estados de aceptacin (un sub-conjunto de S).

ACTIVIDADES OBLIGATORIAS

1. Sea M=(S, , , i, F) donde:

S= {q0, q1, q2}


= {a, b}
i= q0
F= {q0}
2. = se define en la tabla siguiente:

a b

q0 q1 q2
q1 q2 q0
q2 q2 q2

3. Construir el diagrama de transiciones y mencione que lenguaje genera.


4. Dado el siguiente diagrama de transiciones obtener S, , P, i, F y decir que lenguaje se genera.

3. Sea M=(S, , , i, F) donde:

S= {q0, q1, q2, q3}


= {0, 1}
i= q0
F= {q0}

= se define en la tabla siguiente:

0 1

q0 q2 q1
q1 q3 q0
q2 q0 q3
q3 q1 q2

Construir el diagrama de transiciones y mencione que lenguaje genera.

ACTIVIDADES SUGERIDAS
1. Sea M={ S, , , i, F} donde

S={q0, q1}
={a, b}
i = q0
F= {q0}

3. se define en la siguiente tabla.

a b

q0 q0 q1
q1 q1 q0

4. Construir el diagrama de transiciones y mencione que lenguaje genera.


5. Sea M={ S, , , i, F} donde

S={q0, q1, q2, q3}


={a, b}
i = q0
F= {q0, q1, q2}

6. se define en la siguiente tabla.

a b

q0 q0 q1
q1 q0 q2
q2 q0 q3
q3 q3 q3

7. Construir el diagrama de transiciones y mencione que lenguaje genera.


8. Sea M={S, , i, F, P} dado por:

S={q0, q1, q2}


={a, b}
i =q0
F={q0}

9. P dada en la siguiente tabla:

P a b
q0 {q1} 0
q1 0 {q0, q2}
q2 {q0} 0

Construir el diagrama de transiciones correspondiente.

RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

1. Dado el siguiente diagrama de transiciones obtener S, , , i, F y decir que lenguaje genera.

Dada P en la siguiente tabla

P a b
q0 {q0, q3} {q0, q1}
q1 0 {q2}
q2 {q2} {q2}
q3 {q4} 0
q4 {q4} {q4}
i = q0
F ={q2, q4}
= {a, b}
S = {q0, q1, q2, q3, q4}

Construir el diagrama de transiciones correspondiente y decir que lenguaje genera.


2. Sea M el AFN dado por:

i = q0
F ={q1}
= {a, b}
S = {q0, q1}

3. P dada en la siguiente tabla

P a b
q0 {q0, q1} {q1}
q1 0 {q0, q1}

4. Determinar si a2b, ba y b2a estn en L(M).


5. Dibujar el diagrama de transicin para M.
6. El siguiente diagrama, Es un diagrama de transicin correspondiente a un AFD? Por qu si o
porque no?

7. Dada en la siguiente tabla

a b

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.


3.6. RELACIN ENTRE AUTMATAS FINITOS Y GRAMTICAS REGULARES

OBJETIVO

Analizar la relacin que existe entre autmatas finitos y gramticas regulare.

JUSTIFICACIN

Analizar la relacin que existe entre los autmatas finitos y las gramticas regulares nos lleva a un mejor
entendimiento de los autmatas finitos as como de las gramticas.

INTRODUCCIN

Para mejor comprensin de este tema analizaremos primero un teorema, el cual nos demostrara la
relacin que existe entre los autmatas finitos y las gramticas regulares.

CONTENIDO

TEOREMA 1.5.

Para cada alfabeto {L(G): G es una gramtica regular de } = {L(M):M es un autmata finito de }.

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 xX
S yY
X yY
X
Y 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 xX
X yY
Y xX
Y

ACTIVIDADES SUGERIDAS

1. Presente una gramtica regular que genere el lenguaje aceptado por el autmata finito cuyo
diagrama de transiciones se presenta a continuacin.
RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

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
S xX
S yY
Y yY
Y
X xX
X

2. Describa el lenguaje que genera.


3. Presente una gramtica regular que genere el lenguaje aceptado por el autmata finito cuyo
diagrama de transiciones se presenta a continuacin.
3.7. EXPRESIONES REGULARES

OBJETIVO

Comprender y analizar las diferentes operaciones con las que se puede llegar a obtener expresiones
regulares.

JUSTIFICACIN

Es importante comprender los lenguajes regulares y la manera en que podemos obtener una expresin
regular a partir de expresiones definidas.

INTRODUCCIN
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 ) se define como sigue:

a) es una expresin regular

b) Cada miembro de es una expresin regular

c) Si p y q son expresiones regulares, tambin lo es (pUq)

d) Si p y q son expresiones regulares tambin (p.q)

e) Si p es una expresin regular tambin lo es p*

Los lenguajes regulares son aquellos que son reconocidos por autmatas finitos y son tambin aquellos
lenguajes generados por gramticas regulares.

A continuacin se vera como se pueden construir los lenguajes regulares a partir de bloques de
construccin, los cuales contendrn el lenguaje vaco y todos los lenguajes de cadenas simples con
longitud uno.

Ejemplo:

Si = {x,y}, entonces los lenguajes {x} y {y} serian los bloques de construccin naturales para la
construccin de otros lenguajes de .

UNIN:

La tcnica ms directa para construir lenguajes mas complicados a partir de los ms bsicos, es
combinar los lenguajes, utilizando la operacin de unin de la teora de conjuntos; esta operacin se
representa por U.

Para saber si la unin de dos lenguajes regulares genera otro lenguaje regular, considere los siguientes
diagramas.
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.

La construccin general es la siguiente:

Dibuje un nuevo estado inicial; declrelo como un estado de aceptacin si y solo si uno de los estados
iniciales anteriores era de aceptacin.

Para cada estado que sea punto de destino de un arco de alguno de los estados iniciales originales,
dibuje un arco, con la misma etiqueta, a partir del nuevo estado inicial; elimine la caracterstica de inicio
de los estados iniciales originales.

CONCATENACIN:

Otra tcnica es recopilar todas las cadenas formadas al concatenar una cadena del primer lenguaje y
una cadena del segundo. La coleccin de las cadenas formadas de esta manera se denominan
concatenacin de dos lenguajes. As; s L1={x, xy} y L2={yx, yy} entonces el lenguaje L1 L2 = {xyx, xyy,
xyyx, xyyy}. Observe que L1 L2 no es igual a L2 L1 = {yxx, yxxy, yyx, yyxy}.

Suponga que tenemos los diagramas de transiciones T1 y T2 que aceptan los lenguajes L1 y L2
respectivamente, y deseamos construir un diagrama de transiciones que acepte L1 L2. Se procede de
la siguiente forma: a partir de cada estado de aceptacin de T1, dibuje un arco hacia cada estado de T2
que sea el destino de un arco del estado inicial de T2; rotule cada uno de estos arcos con la etiqueta del
arco correspondiente en T2; deje que los estados de aceptacin de T1 sigan siendo estados de
aceptacin si y solo si el estado inicial T2 es tamben estado de aceptacin.

Ejemplo:
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

1. Verifique si se pueden realizar las siguientes operaciones unin, concatenacin y estrella de


Kleene de los siguientes diagramas.

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.

RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

1. Realice las operaciones unin, concatenacin y estrella de Kleene de los siguientes diagramas.

3.8. LIMITACIONES DE LOS AUTMATAS DE ESTADO FINITO

OBJETIVO

Estudiar el lmite que tienen los autmatas finitos en la aceptacin de algunas cadenas.

JUSTIFICACIN

Los autmatas finitos poseen un limite que en ocasiones es ignorado, siendo este un tema importante
para la construccin de los mismos.

INTRODUCCIN
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. Mencione las cadenas que acepta una calculadora.

RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

1. Mencione en el compilador de C que cadenas son aceptables y cuales no.


2. Que pasara si a un traductor le introducimos palabras que no estn dentro de su diccionario.

MODULO 4. AUTMATAS DE PILA.

4.1. CONCEPTO.
4.2. RELACIN ENTRE AUTMATAS DE PILA Y GRAMTICAS LIBRES DE CONTEXTO.
4.3. LIMITACIONES DE LOS AUTMATAS DE PILA.
4.1. AUTMATAS DE PILA

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:

S: es una coleccin finita de estados


: 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.

4.2. RELACIN ENTRE AUTMATAS DE PILA Y GRAMTICAS INDEPENDIENTES DEL


CONTEXTO

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)
2. Designe los estados de M como i, p, q y f. Donde i es el estado inicial y f es el nico estado de
aceptacin.
3. Introduzca la transicin (i, , ;p,#).
4. Introduzca una transicin (p, , ;q,S) donde S es el smbolo inicial de 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)
7. Introduzca la transicin (q, ,#;f, )

Ejemplo: considerar la siguiente gramtica independiente del contexto.

S zMNz
M aMa
M z
N bNb
N z
El siguiente diagrama de transiciones de un autmata de pila construido a partir de la gramtica anterior,
utilizando las tcnicas representadas en el teorema 2.2

Anlisis completo de la cadena zazababa que efecta el autmata de pila.

Contenido de la pila Resto de la entrada Transicin ejecutada


zazabzbz (i, , ;p,#)

# zazabzbz (p, , ;p,s)


S# zazabzbz (q, ,S;q,zMNz)
zMNz# zazabzbz (q,z,z;q, )
MNz# azabzbz (q, , M;q,aMa)
aMaNz# azabzbz (q,a,a;q, )
MaNz# zabzbz (q, ,M;q,z)
zaNz# zabzbz (q,z,z;q, )
aNz# abzbz (q,a,a;q, )
Nz# bzbz (q, ,N;q,bNb)
bNbz# bzbz (q,b,b;q, )
Nbz# zbz (q, ,N;q,z)
zbz# zbz (q,z,z;q, )
bz# bz (q,b,b;q, )
z# 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 xSz
S ySz
S

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 xSy
S

2. Analizar la cadena xxyy.


3.

S xyN
N zS
N z
N

Analizar la cadena xyzxyz

4.3. LIMITACIN DE LOS AUTMATAS DE PILA

OBJETIVO

Analizar las diferentes restricciones que tienen los autmatas de pila a partir de los lenguajes
independientes del contexto.

JUSTIFICACIN
Los AP como todos los autmatas anteriores, tiene sus limitaciones. Existen problemas que a simple
vista son sencillos, pero al realizar el anlisis o desarrollo se complican, en estos momentos se deben
utilizar nuevas herramientas para tratar de resolver el problema.

INTRODUCCIN

Los autmatas de pila tiene limitaciones, para estudiar las limitaciones primero analizaremos un teorema.

CONTENIDO

Antes de analizar las limitaciones primero utilizaremos el siguiente teorema, conocido como, lema de
bombeo ya que muestra como en algunos lenguajes independientes del contexto pueden producirse
cadenas "bombeando" ("ampliando") pociones de otras cadenas.

Teorema 2.5

Si L es un lenguaje independiente del contexto que contiene un numer finito de cadenas, entonces debe
existir en L una cadena que tenga la forma svuwt, donde s, v, u, w y t son sub-cadenas, por lo menos
una de u y w es no vaca, y svnuwnt esta en L para cada n N +.

Demostracin

Sea L un lenguaje independiente del contexto que contiene un numero infinito de cadenas, y sea G una
gramtica independiente del contexto tan que L(G) = L. Sea M el numero mximo de smbolos
(terminales y no terminales) que se encuentra en el lado derecho de cualquier regla de reescritura en G;
es decir, M es la longitud del lado derecho mas largo de las reglas de reescritura de G. Entonces, cada
nodo de un rbol de anlisis sintctico basado en G puede tener cuando mucho M hijos. A su vez,
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 viNwi para cada entero positivo i. A su vez, debe
existir una cadena en L de la forma suvwt donde svnuwnt 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.
MODULO 5. MAQUINAS DE TURING.

5.1. CONCEPTO.
5.2. MAQUINAS DE TURING COMO ACEPTADORES DE LENGUAJE.
5.3. CONSTRUCCIN DE MAQUINAS DE TURING.
5.4. EL PROBLEMA DE LA PARADA.
5.1. MAQUINAS DE TURING

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. Donde es ms comn encontrar las maquinas de Turing.


2. Cual es el principal objetivo de las maquinas de Turing.

ACTIVIDADES SUGERIDAS

1. Analice cual es la importancia de la aplicacin de las maquinas de Turing en los computadores.

RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

1. Mencione un ejemplo de las maquinas de Turing y cual es su funcionamiento.


5.2. MAQUINAS DE TURING COMO ACEPTADORES DE LENGUAJES

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 ( ).

Formalmente una maquina de Turing es una sxtupla de la forma (S, , , , i, h) donde:

S: coleccin finita de estados (por lo menos 2 uno de inicio y uno de parada).


: es un conjunto finito de smbolos distintos de espacio en blanco ( ), llamado alfabeto de la maquina.
: conjunto finito de smbolos, incluidos los de S , que se conocen como smbolos de la maquina (incluye D )
: funcin de transicin de la maquina
i: elemento de S, llamado estado inicial
h: elemento de S, llamado estado de parada.

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. (p,x)=(q,y) significa "si el estado actual es p y el smbolo actual es x, remplazar la x con el


smbolo y " y pasar al estado q.
B. (p,x)=(q,L) si el estado actual es p y el smbolo actual es x, mover la cabeza una celda a la
izquierda y pasar al estado q.
C. (p,x)=(q,R) si el estado actual es p y el smbolo actual es x, mover la cabeza una celda a la
derecha y pasar al estado q.
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, )

Diagrama de transiciones para la maquina de Turing.

ACTIVIDADES OBLIGATORIAS

1. Mencione donde es ms comn encontrar las maquinas de Turing y que funcin desempea.
2. Mencione si las maquinas de Turing tiene limites y por que.

ACTIVIDADES SUGERIDAS
1. Mencione que diferencia o similitud existe entre la maquina de Turing, los Autmatas vistos en
unidades anteriores.

RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

1. Describe que es lo que representa cada uno de los datos que integran la maquina de Turing.
5.3. CONSTRUCCIN DE UNA 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
\ El lenguaje que acepta esta maquina es abba.

Sin embargo representar las configuraciones de una M.T. de esta forma es bastante pesado.

Otra forma de representar una configuracin es como un par (q i, w1 s w2), donde qi es el estado actual, w1
es la cadena de la cinta que precede a la celda sobre la que se encuentra la cabeza de entrada salida, s
es el smbolo de la cinta sobre el que se encuentra la cabeza de entrada salida y w 2 es la cadena que
hay a continuacin de la cabeza de entrada salida. Por tanto las configuraciones para la mquina
anterior es:

(q1,abba) (q1,abba) (q1,aaba) (q1,aaaa) (q1,aaaa ) (q2,aaaa)

Ejemplo

Considere la siguiente mquina

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. Construir una maquina de Turing a partir de los siguientes datos.

S={q1, q2, q3, q4}


={a, b, c}
={a, b, c, }
i= q1
h= {q4}

y 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. Construir una maquina de Turing que acepte solo numeracin binaria.

RECURSOS PARA AMPLIAR EL TEMA

BIBLIOGRAFIA

AUTOEVALUACION

1. Dada la siguiente maquina de Turing obtener:

a. Coleccin de estados.
b. Alfabeto de la maquina.
c. Smbolos de la maquina.
d. Funcin de transicin de la maquina
e. Estado inicial Estado de parada.

2. Dados los siguientes datos, construir el diagrama de la Maquina de Turing correspondiente.

S={q1, q2, q3}


={a, b, c}
={a, b, c, }
i= q1
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)
5.4. EL PROBLEMA DE LA PARADA

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
1. En que actividades podemos encontrarnos el problema de la parada.
2. Mencione las diferencias entre lenguaje enumerable y lenguaje recursivo.

También podría gustarte