Automatas Libro Con Respuestas

download Automatas Libro Con Respuestas

of 105

description

libro de actividades de automatas con diferentes para estudiantes de ingeneria en sistemas INSTITUTO TECNOLOGICO SUPERIOR SDE ZAPOPANDIVISION DE INGENIERIA EN SISTEMAS COMPUTACIONALESINGENIERIAS EN SISTEMAS COMPUTACIONALES

Transcript of Automatas Libro Con Respuestas

INSTITUTO TECNOLOGICO SUPERIOR SDE ZAPOPANDIVISION DE INGENIERIA EN SISTEMAS COMPUTACIONALESINGENIERIAS EN SISTEMAS COMPUTACIONALES

Manual de prcticasTEORIA DE LA COMPUTACION

MSI. Armandso Ramos BarajasJunio 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

OBJETIVOComprender las definiciones que se emplearan a lo largo de este curso, as como su contenido y diferencia.JUSTIFICACINEste 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. CONTENIDOConjunto: 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 bL.rL especifica que r no es un elemento del conjunto L

EJEMPLO DE rL.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|xI"and"x2}.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 AB, 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-CONJUNTOSi 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 BA, tenemos que A = B.El conjunto vaci(): Es sub-conjunto de todos los conjuntos.ACTIVIDADES OBLIGATORIASRepresentar 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 SUGERIDAS1. 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 TEMABIBLIOGRAFIAAUTOEVALUACION1. 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.

OBJETIVOAnalizar las diferentes operaciones que se pueden realizar con los conjuntos del universo y sus elementos. JUSTIFICACINLas 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.CONTENIDOUnin (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|xA or xB}.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 AB={x|xA and xB}.Ejemplo: AB={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 xB}.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)| aA y bB} 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|BA}.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=XYZ =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 SUGERIDASDemuestre si las siguientes leyes son verdaderas o falsas.

RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION 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 AB entonces AB=A d. Si AB entonces A UB=A e. AB=A=AUA f. AUB=BUA g. AB=BA h. AU(BUC)=(AUB) UC i. A(BC)=(AB)C j. A(BUC)=(AB)U(AC) k. A B = B A l. A - B = B - A m. A * B = B * A

0.3. ALFABETOS PALABRAS Y LENGUAJES

OBJETIVOAnalizar las diferencias que existen entre las maneras de representar caracteres o cadenas de caracteres.JUSTIFICACINLa 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 ahINTRODUCCIN 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. CONTENIDOLo 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 OBLIGATORIAS1. 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 SUGERIDASMencione por lo menos 3 ejemplos de cadena, alfabeto, lenguaje y palndromosRECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION1. 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

OBJETIVOAnalizar las operaciones que se pueden realizar con diferentes tipos de cadenas o smbolos.JUSTIFICACINLas 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.CONTENIDOLongitud: 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 wz.Ejemplo: W = "banana" y z ="rama" wz = "bananarama".Se tiene que |wz|=|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 tienew0= w1=122w2=122122w3=122122122y 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 OBLIGATORIAS1. Para todo lenguaje A Qu es A? Y Por que? 2. A={libreta, lpiz, libro}; B={ma, amarillo, viejo} . Obtener AB, AA, ABB. 3. W=monitor, Z=teclado, X=gabinete Y=. Con las palabras anteriores realizar las siguientes operaciones. 1. Y3 = 2. |Y| = 3. |X| = 4. WZX= 5. W3= 6. Z0= 7. ZY= 8. WYZYXY= ACTIVIDADES SUGERIDASAnotar en su libreta ejemplos de los conceptos mencionados anteriormente y analizar cada ejemplo. RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION1. 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) AUBb) AUCc) AUDd) BUDe) ABf) BCg) CDh) AD1. 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

OBJETIVOAnalizar los conceptos que sern utilizados en las gramticas y los lenguajes formales. JUSTIFICACINEl 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. CONTENIDOLenguaje 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 OBLIGATORIASInvestigue tipos de compiladores y su fase.ACTIVIDADES SUGERIDASMostrar un ejemplo que mencione los analizadores lxicos y sintcticos.RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION 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

OBJETIVOEstudiar y analizar el diseo de las gramticas, sus componentes y estructura. JUSTIFICACINPara 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. CONTENIDOA 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 OBLIGATORIAS1. 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 SUGERIDAS1. A partir de la frase "el cielo esta nublado." generar la gramtica correspondiente. RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION1. Obtenga una gramtica estructurada para la declaracin de una variable en el lenguaje C. 2. Derivar "float ab_c3;"

1.3. JERARQUA DE CHOMSKY

OBJETIVOEstudiar y comprender la clasificacin de gramticas y la diferencia que existe entre ellas.JUSTIFICACINTener 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.INTRODUCCINPara 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.CONTENIDOEn 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.

GRAMATICATIPOLENGUAJE QUE GENERA

Regular3Lenguaje tipo 3 o lenguaje regular

Independiente del contexto2Lenguaje de tipo 2 o lenguaje independiente al contexto

Sencible al contexto1Lenguaje tipo 1 lenguaje sensible al contexto.

Tipo no restringido0Tipo 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

Xy

X

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

X xZy

YXWvZ

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

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: EA y EB se unen en EA|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.SzMNz

MaMa

Mz

NbNb

Nz

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 zazabzbzSiguiendo 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 zazabzbzAplicando 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 OBLIGATORIAS1. Mediante la siguiente gramtica, derivar SaE

EA

EB

Ab

AAa

Bb\ bB

2. a) ab 3. b) ab3 4. c) aa3b 5. d ) es posible derivar abab?6. Derivar a) abaa y b) aaabaa. SaS

SbT

TaT

T

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

AaA\b\

ACTIVIDADES SUGERIDAS1. Dada la siguiente gramtica derive xyz, yzrr, yyzrSxT

SyT

TyU

UzW

WrX

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

XxxX

XyY

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

Sy

Sz

S

RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION1. Derivar por la izquierda y derecha la siguiente cadena bbabaabaSAA

AAAA

Aa

AbA

AAb

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

Sa

ASbA

ASS

Aba

1. La siguiente gramtica es independiente del contexto?. SyX

XyZ

ZXx

XYy

Y

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

AaA\a

BbB\b

1. Derivar abaca por izquierda y derechaSSbS\ScS\a

1.4. RBOL DE DERIVACIN

OBJETIVOAnalizar diferentes arboles de derivacin y sus semejanzas con la forma normal de Chomsky.JUSTIFICACINEl 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.INTRODUCCINLas 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.CONTENIDOUn 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 1SzMNz

MaMa

Mz

NbNb

Nz

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

AAAA\a\bA\Ab

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

ASbA\SS\ba

c. Derivar aabbaaACTIVIDADES SUGERIDAS1. A partir de los siguientes arboles de derivacin, generar las gramticas correspondientes para cada rbol. a)

b)

RECURSOS PARA AMPLIAR EL TEMA.BIBLIOGRAFIAAUTOEVALUACIONRepresentar 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. SAB

AaA\a

BbB\b

b. Derivar a5 por la derecha e izquierda. SSbS\ScS\a

1.5. APLICACIN EN EL DISEO DE COMPILADORES

OBJETIVOAnalizar el campo de aplicacin de las gramticas y los lenguajes formales.JUSTIFICACINEl 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.CONTENIDODentro 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 OBLIGATORIAS1. Mencione que relacin tienen las gramticas con los compiladores. 2. Mencione como podemos aplicar los arboles de derivacin en el diseo de compiladores. ACTIVIDADES SUGERIDAS1. Por medio de las gramticas y de los arboles de derivacin disee un pequeo compilador. RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION1. 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

OBJETIVOComprender la manera en que podemos convertir una gramtica independiente del contexto a una gramtica de la Forma Normal de Chomsky.JUSTIFICACINLas 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.CONTENIDOTeorema 2.4Si 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. SXM

MSY

Xx

Yy

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

Sxy

Pasos para obtener la forma normal de ChomskyConsidere la siguiente gramtica SzMz

MN

MyMy

Nx

S zMz zyMyz zyNyz zyxyz Paso 1Introducir los nuevos no terminales YZ y convertir la gramtica anterior en la siguiente: SZMZ

MN

MYMY

Zz

Yy

Nx

Paso 2Lo siguiente es reemplazar la regla SZMZ por el par de reglas SZR; RMZ, mientras que MYMY se reemplaza por MYP; PMY para obtener la siguiente gramtica: SZR

RMZ

MN

MYP

PMY

Zz

Yy

Nx

Paso 3Finalmente la regla MN se reemplaza por la regla Mx, produciendo as la siguiente gramtica ya que tiene la forma normal de Chomsky. SZR

RMZ

Mx

MYP

PMY

Zz

Yy

Nx

S ZR zMZ zYPZ zyPZ zyMYZ zyxYZ zyxyZ zyxyzACTIVIDADES OBLIGATORIAS1. De las siguientes gramticas independientes del contexto obtener otra gramtica en la FNC que generen el mismo lenguaje. a.SaNa

NM

NbNb

Mx

b.SxSy

SwNz

NS

ACTIVIDADES SUGERIDASDe las siguientes gramticas mencione cual tiene la forma normal de Chomsky. a.AABC

AaC

Bb

Cc

b.SXY

Xa

YxSy

c.SMN

Ma

Nb

d. SNM

NMS

Mb

e.AXZ

ZAY

Xa

Yb

RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIA AUTOEVALUACION1. Considere la Gramtica Independiente del Contexto y convierta a la Forma Normal de Chomsky. SbA\aB

AbAA\aS\a

BaBB\bS\b

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

Aa

BBC\AB

C-aB\b

b.Sic+S

Sic+SeS

Ss

MODULO 2. MAQUINAS DE ESTADO FINITO

2.1. CONCEPTO.

2.2. REPRESENTACION.

2.3. APLICACIONES.

2.1. MAQUINAS DE ESTADO FINITO (SECUENCIALES)

OBJETIVOAnalizar los elementos que forman una maquina de estado finito, as como su funcin. JUSTIFICACINEl analizar este tema nos llevara a un mejor entendimiento del comportamiento de algunos dispositivos de computacin y electrnicos como lo pueden ser cajeros automticos.INTRODUCCINLas 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.CONTENIDOUna 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 ok en la cinta de la salida. La funcin d hace que la maquina entre en el estado SJ. 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 q0 para el estado inicial.ACTIVIDADES OBLIGATORIAS1. 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 SUGERIDAS1. Mencione que relacin tienen las maquinas de estado finito con las gramticas y los lenguajes formales. RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION1. En un compilador mencione que representan los smbolos de entrada, estados internos y smbolos de salida.

.2. REPRESENTACIN

OBJETIVOComprender las diferentes maquinas de estado y cada uno de los smbolos de entrada as como los de salida. JUSTIFICACINPara 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. CONTENIDOHay dos maneras de representar una maquina de estado finito en forma compacta. Diagrama de estado Tablas de estado Diagramas de estadoEl 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 SALIDASuponga 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 q2Cadena de salida = x z x z y ACTIVIDADES OBLIGATORIAS1. 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 estadosa 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 SUGERIDAS1. 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=baababac2. Sea M la maquina de estado finito con la siguiente tabla de estadosa 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=bcabaacccbabRECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION1. 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

OBJETIVOConocer la importancia que tienen estas maquinas en la realizacin de funciones cotidianas.JUSTIFICACINEn las funciones que realizamos cotidianamente hacemos uso frecuente de varios dispositivos electrnicos y computacionales, todos realizan funciones que nosotros no estamos acostumbrados a analizar. INTRODUCCINLas 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.CONTENIDOUna 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 OBLIGATORIASMencione por lo menos 5 ejemplos donde se apliquen las maquinas de estado finito.ACTIVIDADES SUGERIDASAnalice el funcionamiento, organizacin y desempeo que tienen las maquinas de estado finito en los objetos que nos rodean.RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION. 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)

OBJETIVOAnalizar los autmatas de estado finito y sus componentes, as como las diferentes formas de representarlos.JUSTIFICACINLa 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. INTRODUCCINLa 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.CONTENIDOUn 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= 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 entradaS={q0,q1,q2}, estadosT={q0,q1}, estados de aceptacinq0 estado inicialLa 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 OBLIGATORIAS1. 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 SUGERIDAS1. 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 TEMABIBLIOGRAFIAAUTOEVALUACION1. Realice el diagrama correspondiente a partir de los siguientes datos. A={a, b, c}, smbolo de entradaS={q0, q1, q2, q3}, estadosT={q0,q1}, estados de aceptacinq0 estado inicialLa 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

OBJETIVODefinir los conceptos necesarios para la identificacin de cada uno de los elementos que se analizaran a lo largo de este modulo.JUSTIFICACINEl 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.CONTENIDOUN 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 OBLIGATORIASMencione en que podemos aplicar los diagrama de transiciones.ACTIVIDADES SUGERIDASAnalice el diagrama de transiciones y relacione cada uno de sus componentes con un objeto comn. RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACIONDescribe 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

OBJETIVOAnalizar la diferencia que existe entre los autmatas finitos y la maquina de estado finito.JUSTIFICACINLa 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. CONTENIDOdiferencia:.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 OBLIGATORIAS1. 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 SUGERIDAS1. Mencione a grandes rasgos que tienen en comn los autmatas de estado finito con la maquina de estado finito. RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION1. 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

OBJETIVOComprender el amplio campo de aplicacin que tienen los autmatas, su funcionamiento y la manera de representarlos. JUSTIFICACINLos 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.INTRODUCCINLos 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.CONTENIDOUna 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 ARTIFICIALLas 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 ELECTRONICALas 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 OBLIGATORIAS1. 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 SUGERIDAS1. Investigue los avances tecnolgicos donde se apliquen los autmatas de estado finito y como funcionan. RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION1. 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

OBJETIVOEstudiar 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.JUSTIFICACINEl 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.INTRODUCCINEn 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.CONTENIDOEsta 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 DETERMINISTAPara 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 DETERMINISTAEsta 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 OBLIGATORIAS1. 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 SUGERIDAS1. Sea M={ S, , , i, F} donde

2. 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 TEMABIBLIOGRAFIAAUTOEVALUACION1. Dado el siguiente diagrama de transiciones obtener S, , , i, F y decir que lenguaje genera.

Dada P en la siguiente tablaP 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 tablaP 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

OBJETIVOAnalizar la relacin que existe entre autmatas finitos y gramticas regulare.JUSTIFICACINAnalizar 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.INTRODUCCINPara 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.CONTENIDOTEOREMA 1.5.Para cada alfabeto {L(G): G es una gramtica regular de } = {L(M):M es un autmata finito de }. DEMOSTRACINSi 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 PxQ. 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 PxQ 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).SxX

SyY

XyY

X

YxX

Y

Diagrama que representa la gramatica anterior.

ACTIVIDADES OBLIGATORIAS1. 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. SxX

XyY

YxX

Y

ACTIVIDADES SUGERIDAS1. 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 TEMABIBLIOGRAFIAAUTOEVALUACION1. 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

SxX

SyY

YyY

Y

XxX

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

OBJETIVOComprender y analizar las diferentes operaciones con las que se puede llegar a obtener expresiones regulares. JUSTIFICACINEs importante comprender los lenguajes regulares y la manera en que podemos obtener una expresin regular a partir de expresiones definidas. INTRODUCCINEn 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.CONTENIDOUna Expresin Regular (para un alfabeto ) se define como sigue:a) es una expresin regularb) Cada miembro de es una expresin regularc) 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 L1L2 = {xyx, xyy, xyyx, xyyy}. Observe que L1L2 no es igual a L2L1 = {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 L1L2. 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 OBLIGATORIAS1. Verifique si se pueden realizar las siguientes operaciones unin, concatenacin y estrella de Kleene de los siguientes diagramas.

ACTIVIDADES SUGERIDAS1. 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 TEMABIBLIOGRAFIA AUTOEVALUACION1. Realice las operaciones unin, concatenacin y estrella de Kleene de los siguientes diagramas.

3.8. LIMITACIONES DE LOS AUTMATAS DE ESTADO FINITO

OBJETIVOEstudiar el lmite que tienen los autmatas finitos en la aceptacin de algunas cadenas.JUSTIFICACINLos autmatas finitos poseen un limite que en ocasiones es ignorado, siendo este un tema importante para la construccin de los mismos.INTRODUCCINEl 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.CONTENIDOConsideremos 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 OBLIGATORIAS1. Describa un ejemplo donde mencione que cadenas son aceptables y cuales no. ACTIVIDADES SUGERIDAS1. Mencione las cadenas que acepta una calculadora. RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION1. 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

OBJETIVODisear y analizar los autmatas de pila para comprender mejor su aplicacin en los analizadores sintcticos.JUSTIFICACINTener 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. INTRODUCCINEn este tema veremos como trabaja un AP, los elementos que lo forman y la manera en que se representan las transiciones.CONTENIDOUna 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 OBLIGATORIAS1. En los AP cul es el objetivo de la pila? 2. Menciona la secuencia bsica de los Autmatas de pila ACTIVIDADES SUGERIDAS1. Describe el funcionamiento de los autmatas de pila. RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION1. 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

OBJETIVOAnalizar la relacin que existe entre los autmatas de pila y las gramticas independientes del contexto, as como su construccin a partir de las gramticas. JUSTIFICACINLa relacin que existe entre los AP y las GLC es un factor importante, ya que por medio de una GLC podemos desarrollar un AP.INTRODUCCINLos 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.CONTENIDOEn 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.2Para cada gramtica G independiente del contexto, existe un autmata de pila M tal que L(G)=L(M).DemostracinDada 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 Nw 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.SzMNz

MaMa

Mz

NbNb

Nz

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 OBLIGATORIASConstruir un diagrama de transiciones para un autmata de pila basado en la siguiente gramtica con smbolo inicial S.SxSz

SySz

S

ACTIVIDADES SUGERIDAS1. 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 BIBLIOGRAFIAAUTOEVALUACION.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. SxSy

S

2. Analizar la cadena xxyy.3. SxyN

NzS

Nz

N

Analizar la cadena xyzxyz

4.3. LIMITACIN DE LOS AUTMATAS DE PILA

OBJETIVOAnalizar las diferentes restricciones que tienen los autmatas de pila a partir de los lenguajes independientes del contexto.JUSTIFICACINLos 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.INTRODUCCINLos autmatas de pila tiene limitaciones, para estudiar las limitaciones primero analizaremos un teorema.CONTENIDOAntes 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.5Si 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 +.DemostracinSea 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 md (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 OBLIGATORIAS1. Menciona 5 actividades donde se limite a los autmatas de pila. ACTIVIDADES SUGERIDAS1. Analice si los elementos de los autmatas de pila los limitan a realizar ciertas actividades. RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION1. 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

OBJETIVOComprender el funcionamiento y las propiedades de la maquina de Turing.JUSTIFICACINLas 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.CONTENIDOLa 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 OBLIGATORIAS1. Donde es ms comn encontrar las maquinas de Turing. 2. Cual es el principal objetivo de las maquinas de Turing. ACTIVIDADES SUGERIDAS1. Analice cual es la importancia de la aplicacin de las maquinas de Turing en los computadores. RECURSOS PARA AMPLIAR EL TEMABIBLIOGRAFIAAUTOEVALUACION1. Mencione un ejemplo de las maquinas de Turing y cual es su funcionamiento.

5.2. MAQUINAS DE TURING COMO ACEPTADORES DE LENGUAJES

OBJETIVOAnalizar la funcin de las maquinas de Turing y los elementos que la forman. JUSTIFICACINUna de las funciones de las maqui