TEORIA DE LA COMPUTACION UNIDAD 2 LENGUAJES REGULARES ITM UNIDAD 2 LENGUAJES REGULARES 2.1 AUTOMATAS FINITOS 2.1.1 AUTOMATAS FINITOS DETERMINISTICOS 1. Define un automata finito. Es una quíntupla (S,∑,T,s,A) donde: ∑ es un alfabeto S un conjunto de estados T es la función de transición. s E S es el estado inicial A ⊆S es el conjunto de estados de aceptación o finales 2. ¿De que forma se puede representar un autómata finito? Por medio de tablas de transiciones y de Diagramas de Transiciones. 3. Escriba las siglas del término autómata finito no deterministico y su significado en ingles. NFA. Nondeterministic Finite Automaton. 4. De un ejemplo de tabla de transición. 0 1 S1 S2 S1 S2 S1 S2 5. ¿Que es un autómata finito no deterministico? Es una quinta tupla ( Q, S , q0, d , F) en donde Q, S , q0 y F (estados, entradas, estado inicial y estados finales) poseen el mismo significado que para un DFA, pero en este caso d es una transformación de Q x S a 2Q. 6. ¿Que es un autómata finito no deterministico con movimiento e.? Es como la quinta tupla ( Q, S , d , q0, F) con todos sus componentes igual que a un NFA, con excepción de d , la función de transición, que ahora transforma Q x (S È {e }) a 2Q; para incluir transiciones de un estado a otro que no dependan de ninguna entrada. Se puede añadir una columna en la tabla de d para colocar los pares de la forma (qi, e ). Cuando hay e -transiciones en un NFA es conveniente suponer que cada estado tiene una e -transición que cicla en ese estado. Es como la quinta tupla ( Q, S , d , q0, F) con todos sus componentes igual que a un NFA, con excepción de d , la función de transición, que ahora transforma Q x (S È {e }) a 2Q; para incluir transiciones de un estado a otro que no dependan de ninguna entrada. Se puede añadir una columna en la tabla de d para colocar los pares de la forma (qi, e ). Cuando hay e -transiciones en un NFA es conveniente suponer que cada estado tiene una e -transición que cicla en ese estado. MARIA DEL CARMEN FLORES DOMINGUEZ TEORIA DE LA COMPUTACION UNIDAD 2 LENGUAJES REGULARES ITM 7. Si M es un NFA, ¿como se define el lenguaje aceptado por M.? Definiremos el lenguaje aceptado por M por medio de L(M)={w ½ w es una cadena aceptada por M} donde una cadena w es aceptada por M, si M pasa de su estado inicial a su estado de aceptación o final al recorrer w (w es consumida en su totalidad). 8. ¿Que es un autómata finito? Un autómata finito o máquina de estado finito es un modelo matemático de un sistema que recibe una cadena constituida por símbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autómata reconoce. 9. De un concepto de autómata finito determinista. Autómata finito no determinista es aquel que presenta cero, una o más transiciones por el mismo carácter del alfabeto y se clasifican en: con transiciones Σ y sin transiciones Σ dependiendo de la existencia o no de una o más transiciones sin que el autómata lea el próximo carácter de la cadena que está analizando. 10. ¿Cuando se dice que el autómata no es deterministico? Cuando a partir de algún estado y para el mismo símbolo de entrada, se definen dos o más transiciones. MARIA DEL CARMEN FLORES DOMINGUEZ TEORIA DE LA COMPUTACION UNIDAD 2 LENGUAJES REGULARES ITM 2.1.2 AUTOMATAS FINITOS NO DETERMINISTICOS 1. ¿Qué es un autómata finito? R: es un modelo matemático de una máquina que acepta cadenas de un lenguaje definido sobre un alfabeto A. Consiste en un conjunto finito de estados y un conjunto de transiciones entre esos estados, que dependen de los símbolos de la cadena de entrada. 2. ¿Cuando se dice que el autómata es deterministico? R: Cuando para todo estado del autómata existe como máximo una transición definida para cada símbolo del alfabeto. 3. ¿Cuando se dice que el autómata no es deterministico? R: Cuando a partir de algún estado y para el mismo símbolo de entrada, se definen dos o más transiciones. 4. ¿Menciona 2 formas de representar autómatas finitos? R: Las Tablas de Transiciones: la tabla de transición para el AF del ejemplo 1 es 0 1 S1 S2 S1 S2 S1 S2 Los Diagramas de Transiciones: el diagrama de transición para el AF del ejemplo 1 es 5. Menciona la descripción informal de un autómata finito. R: En el comienzo del proceso de reconocimiento de una cadena, el AF se encuentra en el estado inicial y a medida que procesa cada símbolo de la cadena va cambiando de estado de acuerdo a lo determinado por la función de transición. Cuando se ha procesado el último de los símbolos de la cadena de entrada, el autómata se detiene. Si el estado en el que se detuvo es un estado de aceptación o final, entonces la cadena pertenece al lenguaje reconocido por el autómata, caso contrario, la cadena no pertenece a dicho lenguaje MARIA DEL CARMEN FLORES DOMINGUEZ TEORIA DE LA COMPUTACION UNIDAD 2 LENGUAJES REGULARES MARIA DEL CARMEN FLORES DOMINGUEZ ITM TEORIA DE LA COMPUTACION UNIDAD 2 LENGUAJES REGULARES ITM 6. Dibuja el esquema lógico de un autómata finito. 7. Menciona las características de los autómatas finitos deterministicos. 1. Un conjunto finito de estados y un conjunto de transiciones de estado a estado, que se dan sobre símbolos de entrada tomados de un alfabeto S. 2. Para cada símbolo de entrada existe exactamente una transición a partir de cada estado (posiblemente de regreso al mismo estado). 3. Un estado, por lo general denotado como q0 es el estado inicial, en el que el autómata comienza. 4. Algunos estados (tal vez ninguno) están designados como final o de aceptación. 8. ¿Qué son las expresiones regulares? R: Los lenguajes aceptados por un autómata finito se describen con facilidad mediante expresiones simples llamadas expresiones regulares. 9. ¿Cuántas maneras de diferenciar un Autómata PushDown y un Autómata Finito? 1.-Pueden utilizar la tapa del apilado para calcular hacia fuera qué transición a la toma. 2.-Pueden manipular el apilado como parte de realizar una transición. 10. Formalmente un autómata finito determinista consiste en una quíntupla, descríbela. S: es un conjunto finito de estados. : es el alfabeto de la maquina. : es una función(función de transición) de SXS a S i: estado inicial(un elemento de S) F: conjunto de estados de aceptación (sub.-conjunto de S) MARIA DEL CARMEN FLORES DOMINGUEZ TEORIA DE LA COMPUTACION UNIDAD 2 LENGUAJES REGULARES ITM 2.3 LENGUAJES NO REGULARES 1.- ¿Por que se utilizan las expresiones matemáticas para la explicación de lenguajes no regulares? R= Por que este tipo de ejemplos indican como pueden mejorarse las técnicas de análisis léxico, para permitirnos una mayor gama de estructuras de cadenas. 2.- ¿Por que en estas expresiones debe existir el mismo numero de paréntesis izquierdos y derechos? R= Por que al recorrer la expresión de izquierda a derecha, el numero de paréntesis derechos detectados no debe exceder el numero de paréntesis izquierdos encontrados, hasta ese punto. 3.- ¿Que podemos intuir con estas observaciones sobre el análisis de expresiones aritméticas? R= Nos dice que el análisis de estas expresiones requiere la habilidad para recordar cuantos paréntesis izquierdos se han encontrado sin que exista un paréntesis derecho correspondiente. 4.- ¿Podemos decir que el análisis de expresiones aritméticas que contienen paréntesis es una tarea que rebasa las capacidades de los autómatas finitos? R= Si puesto que un autómata determinista no tiene manera de almacenar este recuento para una referencia posterior. 5.- ¿De que nos habla el teorema sobre las cadenas de la forma xn yn? R= Si un lenguaje regular contiene cadenas de la forma xnyn para enteros n arbitrariamente grandes, entonces debe contener cadenas de la forma xmyn, donde m y n no son iguales. 6.- ¿Que pasaría si un autómata finito determinista aceptara expresiones xmyn? R= Entonces tendría que aceptar expresiones de la forma (n)n para enteros arbitrariamente grandes. 7.-¿ De que mas nos habla el teorema acerca de los autómatas de este tipo? R= Nos dice que un autómata de este tipo también debe aceptar expresiones en donde el numero de paréntesis izquierdos no sea igual al numero de paréntesis derechos. MARIA DEL CARMEN FLORES DOMINGUEZ TEORIA DE LA COMPUTACION UNIDAD 2 LENGUAJES REGULARES ITM 8.- ¿Que pasaría si autómata finito repasa la sintaxis de un lenguaje de programación de alto nivel? R=Se encontraría que no podría reconocer todos los detalles de la estructura de el programa ya que es probable que el lenguaje permita emplear paréntesis en expresiones aritméticas. 9.- ¿Que permite la simplicidad de este nivel de lenguaje? R= la simplicidad de este lenguaje no es fortuita: permite construir el analizador léxico del compilador utilizando técnicas sencillas. 10.- ¿Que podemos concluir acerca de los autómatas finitos deterministas? R= Podemos notar que aunque tengan un poder limitado, no son inútiles ya que pueden procesar la estructura de construcciones como palabras reservadas, nombres de variables y símbolos de operaciones. MARIA DEL CARMEN FLORES DOMINGUEZ