ebook img

Introducción a la Teoría de Autómatas, Gramáticas y Lenguajes PDF

223 Pages·2017·199.689 MB·Spanish
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Introducción a la Teoría de Autómatas, Gramáticas y Lenguajes

Elena Gaudioso Vázquez Tomás García Saiz INTRODUCCION A LA TEORÍA DE AUTÓMATAS, GRAMÁTICAS T 1 Y LENGUAJES ELENA GAUDIOSO VÁZQUEZ TOMÁS GARCIA SAIZ INTRODUCCIÓN A LA TEORÍA DE AUTÓMATAS, GRAMÁTICAS Y LENGUAJES Editorial Universitaria UnED Ramón Ateces Las imágenes mostradas han sido tomadas y tratadas por los autores del presente libro. El icono de las cajas de trabajo, ha sido diseñada por Madebyoliver de Flaticon www.flaticon.com Reservados todos los derechos. Ni la totalidad ni parte de ese libro puede reproducirse o transmitirse por ningún procedimiento electrónico o mecánico, incluyendo fotocopia, grabación magnética o cualquier almacenamiento de información y sistema de recuperación, sin permiso escrito de Editorial Centro de Estudios Ramón Areces, S. A. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.conlicencia. com) si necesita fotocopiar o escanear algún fragmento de esta obra. © EDITORIAL CENTRO DE ESTUDIOS RAMÓN ARECES, S.A. Tomás Bretón, 21 - 28045 Madrid Teléfono: 915.061.190 Fax: 914.681.952 Correo: [email protected] Web: www.cerasa.es ISBN-13: 978-84-9961-285-0 Depósito legal: M-23463-2017 Impreso por: Campillo Nevado, S.A. Antonio González Porras, 35-37 28019 MADRID Impreso en España i Printed in Spain Indice 1. Conceptos previos 1 1.1. Conceptos fundamentales de la teoría de conjuntos.................................... 1 1.2. Conceptos fundamentales de la teoría de autómatas.................................... 4 1.3. Ejercicios....................................................................................................... 9 2. Autómatas finitos 11 2.1. Autómatas finitos........................................................................................... 11 2.2. Elementos de un autómata finito................................................................... 12 2.3. Definición formal de autómata finito determinista....................................... 14 2.4. Representaciones de los autómatas finitos deterministas.............................. 16 2.4.1. Diagrama de transiciones................................................................... 16 2.4.2. Tabla de transiciones......................................................................... 17 2.5. El lenguaje de un autómata finito determinista............................................. 18 2.6. Ejemplos de lenguajes regulares................................................................... 19 2.7. Autómatas finitos no deterministas................................................................ 21 2.8. Equivalencia entre autómatas finitos deterministas y no deterministas . . . . 23 2.9. Ejercicios....................................................................................................... 26 3. Gramáticas regulares 31 3.1. Definición de gramática............................................................... 31 3.2. Tipos de gramáticas: gramáticas regulares................................................... 34 3.3. Ejemplos de gramáticas regulares ................................................ 36 3.4. Gramáticas regulares y autómatas finitos...................................................... 38 3.5. Ejercicios....................................................................................................... 42 VII VIII I ndice 4. Expresiones regulares 45 4.1. Introducción.................................................................................................... 45 4.2. Definición de las expresiones regulares.......................................................... 46 4.3. Lenguaje representado por una expresión regular........................................ 47 4.4. Autómatas finitos y expresiones regulares.................................................... 50 4.5. Propiedades de las operaciones de las expresiones regulares........................ 56 4.6. Ejercicios....................................................................................................... 57 5. Propiedades de los lenguajes regulares y lenguajes no regulares 59 5.1. Propiedades de los lenguajes regulares.......................................................... 59 5.1.1. Unión de lenguajes regulares............................................................. 60 5.1.2. Complementario de un lenguaje regular.......................................... 63 5.1.3. Intersección de dos lenguajes regulares.......................................... 64 5.1.4. Concatenación de dos lenguajes regulares........................................ 67 5.1.5. Estrella de Kleene de un lenguaje regular....................................... 70 5.2. Introducción a los lenguajes no regulares....................................................... 72 5.3. Introducción a la jerarquía de Chomsky....................................................... 76 5.4. Ejercicios....................................................................................................... 76 6. Lenguajes y gramáticas independientes del contexto 81 6.1. Definición de las gramáticas independientes del contexto........................... 81 6.2. Derivaciones en las gramáticas independientes del contexto........................ 85 6.3. Lenguaje de una gramática independiente del contexto .............................. 87 6.4. Introducción a los árboles de derivación....................................................... 88 6.5. Forma Normal de Chomsky............................................................................ 90 6.6. Transformación a Forma Normal de Chomsky.............................................. 92 6.7. Ejercicios....................................................................................................... 99 7. Autómatas a pila 103 7.1. Introducción a los autómatas a pila......................................................... 103 7.2. Definición formal de un autómata a p ila ....................................................... 105 7.3. Lenguajes aceptados por los autómatas a p ila ............................................. 110 7.4. Autómatas a pila y gramáticas independientes del contexto........................ 114 7.5. Autómatas a pila deterministas...................................................................... 117 7.6. Ejercicios....................................................................................................... 120 8. Propiedades de los lenguajes independientes del contexto 123 8.1. El lema de bombeo para lenguajes independientes del contexto.................. 123 8.2. Los lenguajes independientes del contexto en la jerarquía de Chomsky . . . 125 INDICE IX 8.3. Propiedades de los lenguajes independientes del contexto........................... 127 8.4. Ejercicios....................................................................................................... 129 9. Introducción a las máquinas de Hiring 133 9.1. Límites de la computación........................................................................... 133 9.2. Definición de una máquina de Turing............................................................ 134 9.3. Descripciones instantáneas............................................................................ 137 9.4. Diagramas de transiciones para las máquinas de Turing.............................. 139 9.5. El lenguaje de una máquina de Turing: lenguajes recursivamente enumerables 140 9.6. Extensiones de la máquina de Turing básica................................................ 146 9.7. Lenguajes recursivamente enumerables en la jerarquía de Chomsky . . . . 147 9.8. Ejercicios....................................................................................................... 147 10. Ejercicios de autoevaluación 149 11. Solución a los ejercicios 181 11.1. Capítulo 1 ....................................................................................................... 181 11.2. Capítulo 2 ....................................................................................................... 182 11.3. Capítulo 3 ....................................................................................................... 185 11.4. Capítulo 4 ....................................................................................................... 187 11.5. Capítulo 5 ....................................................................................................... 190 11.6. Capítulo 6 ....................................................................................................... 198 11.7. Capítulo 7 ....................................................................................................... 205 11.8. Capítulo 8 ....................................................................................................... 209 11.9. Capítulo 9 ....................................................................................................... 215 Prólogo El objetivo del presente texto es proporcionar una introducción a la materia de las máquinas de estado o autómatas y los diferentes tipos de lenguajes formales que reconocen. La teoría de autómatas es un área fundamental en el campo de las Ciencias de la Computación. Se ocupa del estudio de las máquinas de estados finitos y permite establecer el límite computacional de los ordenadores esto es, qué es capaz de computar una máquina actual y con qué complejidad. Las máquinas vistas en este texto, sirven de base para la construcción de compiladores, en concreto de los módulos que se encargan de los análisis léxico y sintáctico. Esta materia se proporciona en la asignatura de primero de grado de Ingeniería Informática de la Universidad Nacional de Educación a Distancia. Es por ello, que este es un libro especialmente diseñado para la enseñanza a distancia. Por tanto, para cada capítulo, se incluyen recomendaciones al estudio y una serie de pequeños ejercicios a realizar para afianzar conocimientos. Con el objetivo de animar al lector a realizar estos ejercicios, la solución de los mismos se incluye al final del texto. Para poder dar una visión completa del temario adaptándolo a un alumno de primero de grado, se han evitado, en la manera de lo posible, las demostraciones formales. Aquel lector interesado en profundizar los contenidos presentados en el presente texto, puede utilizar las siguientes dos referencias que sirven como material complementario: [Hopcroft et al., 2008] y [Brookshear, 1993]. Así mismo, los capítulos se han organizado con la idea de seguir una planificación concreta durante un cuatrimestre. Así, cada capítulo se correspondería con una o a lo sumo dos semanas de estudio. Los autores XI Capítulo 1_____ Conceptos previos A lo largo del texto, se verán los lenguajes como conjuntos de cadenas que acepta una determinada máquina teórica. Por ello, se hará uso de conceptos básicos de teoría de conjuntos. Para ayudar al lector a recordar dichos conceptos, se ha introducido en este capítulo alguno de los conceptos más relevantes que se utilizarán a lo largo del texto. Así mismo, y a modo de glosario, se incluye una presentación de los conceptos fundamentales de la materia de autómatas, gramáticas y lenguajes. 1.1. Conceptos fundamentales de la teoría de conjuntos ■ Conjunto Un conjunto es una colección de objetos que se denominan elementos o miembros. Normalmente, los elementos de un conjunto se representan separados por comas y encerrados entre corchetes ({ y }). Se dice que un conjunto es finito cuando contiene un número finito de elementos. Algunos ejemplos de conjuntos finitos son: • El conjunto de letras vocales del alfabeto: V = {n, e, i, o. • El conjunto de días de la semana: S = {lunes, martes, miércoles, jueves, viernes}. • El conjunto formado por los números menores de 100: N = {1,2,3,..., 97,98,99,100}. Se dice que un conjunto es infinito cuando contiene un número infinito de elementos. Algunos ejemplos de conjuntos infinitos son: 1 2 Conceptos fundamentales de la teoría de conjuntos • El conjunto de números naturales: ÍV = {1,2,3,...}. • El conjunto de números primos: P = {1,3,5,7,...}. • El conjunto formado por los números mayores de 100: { , , , ,...}. M = 101 102 103 104 La cardinalidad de un conjunto determina el tamaño de dicho conjunto, esto es, el número de elementos que contiene. Se representa mediante dos líneas verticales, así, si se considera el conjunto finito V = {a,e,i,o,u}, entonces su cardinalidad se representa de la siguiente manera: |V| = 5. ■ Conjunto vacío El conjunto vacío es aquel que no contiene ningún elemento. El conjunto vacío se representa mediante el siguiente símbolo: 0. ■ Pertenencia Se dice que un elemento pertenece a un conjunto cuando cumple las condiciones que lo definen. El operador de pertenencia se representa mediante el símbolo € y en el ejemplo del conjunto V = {a, e, i ,o, u}, se cumple que a E V. ■ Subconjunto Se dice que A es un subconjunto áe, B (A C. B), si todos los elementos A pertenecen también al conjunto B. Esto es, para todo elemento se cumple que tu E B. El conjunto A es un subconjunto propio de Bis C y existen elementos de B que no pertenecen a A. En este caso se representa la relación entre los dos conjuntos de la siguiente forma: Ac B.Por ejemplo, dados los conjuntos: A = {a,b,c,d} B = {c, d} C = {c, d}D = {e,/} B es un subconjunto propio de A: Bc A. ■ Igualdad y desigualdad entre conjuntos Dos conjuntos A y B son iguales ( A = B) si se cumple que C y C Dos conjuntos A y B,son diferentes ( A^ B) si existen elementos de A que no pertenecen aB y viceversa. Esto es, existen tu E A tales que w ^ By existen z 6 tales que z £ A. Así, siguiendo el ejemplo anterior, se cumple que: = y CONCEPTOS PREVIOS 3 ■ Conjunto potencia Dado un conjunto A, el conjunto potencia P{A) es la colección de todos los subconjuntos que se pueden formar con los elementos de A. Por tanto, los elementos del conjunto potencia son a su vez conjuntos. Por ejemplo, considerando el conjunto A = {a, 6, c) entonces el conjunto potencia de A es: P{A) = {{a}, {6}, {c}, {a, 6}, {a, c}, {£>, c), {a, b, c}}. Dado un conjunto A, la cardinalidad de su conjunto potencia se define: P(A) = donde |^4| es la cardinalidad del conjunto A. El conjunto potencia de un conjunto infinito es un conjunto incontable. ■ Operaciones entre conjuntos Las principales operaciones entre conjuntos que se van a considerar son: - Unión La unión de dos conjuntos A y B, representada por U es la colección de todos los elementos que se encuentran en o en AU B = {x :x E A o x e B} Por ejemplo, dados los conjuntos: A = {a,b,c,d} B = {c1d} C = { D = {e, f} entonces: AU B = {a,b, c,d} B U C = {c,d} = B = C C'J D — {c,d,e,/} - Intersección La intersección de dos conjuntos A y B, representada por n es la colección de objetos que son elementos tanto de A como de B. Por consiguiente: AC\ B = {x \ x E Ay x E B} Por ejemplo, dados los conjuntos A = {a, = {6, c, d}, entonces: í4í1B = { íi,c } - Diferencia La diferencia entre dos conjuntos Ay Bse representa mediante el signo y es el conjunto que resulta de eliminar del conjunto A los elementos del conjunto B. Por ejemplo, dados los conjuntos A = {a, c}, {a, c},C {a, 6} {d, e}, entonces:

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.