UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA La Universidad Católica de Loja MODALIDAD ABIERTA Y A DISTANCIA
ESCUELA DE CIENCIAS DE LA COMPUTACIÓN
Guía Didáctica
T EORÍA DE AUTÓMATAS Y LENGUAJES FORMALES
6 CICLO
18604
DATOS DE IDENTIFICACIÓN: CARRERA PROFESOR(A) TELÉFONO E-MAIL TUTORÍA
: : : : :
Ingenierí a en Informática Ingeniería Ing. Juan Carlos Torres Díaz (07) 2 570 275 Ext. 2322
[email protected] jctorres@u tpl.edu.ec Lunes de 08h00 a 12h00
Estimado Estudiante, dígnese confirmar la información aqui señalada llamando al Call Center 072588730, línea gratuita 1800 887588 o al mail callcenter @utpl.edu.ec
Reciba asesoría virtual en: www.utpl.edu.ec OCTUBRE 2008 - FEBRERO 2009 MATERIAL DE USO DIDÁCTICO PARA ESTUDIANTES DE LA UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA, PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL POR CUALQUIER MEDIO
TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Guía Didáctica
Juan Carlos Torres Díaz © 2006, UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA Diagramación, diseño e impresión: EDITORIAL DE LA UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA Call Center: 593 - 7 - 2588730, Fax: 593 - 7 - 2585977 C. P.: 11- 01- 608 www.utpl.edu.ec San Cayetano Alto s/n Loja - Ecuador Segunda edición Cuarta reimpresión ISBN-978-9978-09-193-7 Derecho de Autor No 021313 Enero, 2008
Esta versión impresa, ha sido licenciada por el autor con Creati ve Commons; la misma que permite copiar, distribuir y comunicar públicamente la obra, mientras se reconozca la autoría original, no se realicen obras derivadas ni se utilice con fines comerciales. http://www.creativecommons.org/licences/by-nc-nd/3.0
ÍNDICE
INTRODUCCIÓN ..................................................................................................... OBJETIVO GENERAL .............................................................................................. BIBLIOGRAFÍA ......................................................................................................... ORIENTACIONES GENERALES ...........................................................................
5 5 6 6
PRIMER BIMESTRE
OBJETIVOS ESPECÍFICOS ..................................................................................... 7 CONTENIDOS ......................................................................................................... 8 DESARROLLO DEL APRENDIZAJE .................................................................. 9 CAPÍTULO 1. AUTÓMATAS FINITOS...........................................................................9 CAPÍTULO 2. EXPRESIONES REGULARES Y LENGUAJES REGULARES............ 17 CAPÍTULO 3. ANÁLISIS LÉXICO...................................................................................23
SEGUNDO BIMESTRE
OBJETIVOS ESPECÍFICOS .................................................................................... 31 CONTENIDOS .......................................................................................................... 32 DESARROLLO DEL APRENDIZAJE ................................................................... 33 CAPÍTULO 4. AUTÓMATAS DE PILA...........................................................................33 CAPÍTULO 5. GRAMÁTICAS INDEPENDIENTES DE CONTEXTO GIC............... 35 CAPÍTULO 6. MÁQUINAS DE TURING........................................................................37 F
EVALUACIONES A DISTANCIA
Guía Didáctica: Teoría de Autómatas y Lenguajes Formales
INTRODUCCIÓN La computación, muy avanzada hoy en día, sienta sus bases sobre una sólida plataforma desarrollada con mucho esfuerzo e investigación, un área importante es el trabajo con los lenguajes de programación, cuyas raíces están en la teoría de autómatas y lenguajes formales. Esta asignatura forma parte del área fundamental de la carrera de Ingeniería en Informática correspondiente al sexto semestre. Esta asignatura tiene su importancia en que señala los aspectos básicos de los lenguajes computacionales, así como nos muestra de manera general el trabajo interno de los sistemas de computación en lo referente al tratamiento de cadenas y lenguajes, los contenido que se cubren son principalmente los autómatas finitos, autómatas de pila, lenguajes independientes de contexto, maquinas de turing como reconocedores de lenguajes. Sea bienvenido al presente curso y no dude en contactar a su profesor en caso de necesitar resolver cualquier inquietud. Saludos y éxitos!!!
OBJETIVO G ENERAL ¸
Dar al estudiante una visión global del trabajo de los autómatas y su aplicación en los lenguajes de programación.
MODALIDAD ABIERTA Y A DISTANCIA
La Universidad Católica de Loja UTPL
5
Guía Didáctica: Teoría de Autómatas y Lenguajes Formales
B IBLIOGRAFÍA TEXTO BASE
Hopcroft, J., et All, Introducción a la Teoría de Autómatas, Lenguajes y Computación, Segunda Edición, Adison Wesley, Madrid, 2002
Este libro tiene un espectro amplio en cuanto a que cubre desde los detalles hasta aspectos avanzados de cada tema, está expresado en términos sencillos y solo en casos necesarios recurre a expresar con formalismos los diferentes aspectos que trata. TEXTO COMPLEMENTARIO
Kelley, D. Teoria de Autómatas y Lenguajes Formales, Prentice Hall, Madrid 1995 Escogido por los temas que cubre y principalmente por la amplia gama de ejercicios que resuelve y plantea, ofrece un capitulo especial (el número cero) dedicado a aquellos que tienen problemas con las matemáticas necesarias para abordar la materia. Su metodología la basa en definiciones cortas, ejercicios resueltos con explicaciones detalladas y muchos ejercicios planteados.
ORIENTACIONES G ENERALES Estimado estudiante la presente guía señala el camino a seguir en el desarrollo de la asignatura de Lenguajes Formales y Teoría de Autómatas, la guía busca orientar en el trabajo con el texto base y con el Entorno Virtual de Aprendizaje (EVA) herramienta indispensable en el desarrollo del presente curso, para ello sugiero que usted obtenga su usuario y clave e ingrese al EVA, una ves allí, siga el proceso e instrucciones que se plantean, deberá participar en un foro virtual por cada bimestre, responder auto evaluaciones y descargar ejercicios planteados. Siga las instrucciones que se dan para cada uno de los capítulos de la guía, y principalmente comente los diferentes temas con sus compañeros y profesor a través del EVA. Una organización adecuada de las actividades asegura un buen porcentaje del aprendizaje, por esa razón es conveniente que siga las instrucciones que a continuación le sugiero: •
Establezca un horario, es recomendable que estudie esta materia por lo menos una hora diaria.
•
Escoja un momento y lugar tranquilo para estudiar
•
Utilice siempre un cuaderno de notas
•
Todas las dudas que tenga llévelas al EVA a sus compañeros y profesores 6
UTPL La Universidad Católica de Loja
MODALIDAD ABIERTA Y A DISTANCIA
Guía Didáctica: Teoría de Autómatas y Lenguajes Formales
P RIMER BI IM ME ES ST TR RE E B
OBJETIVOS E SPECÍFICOS •
Conocer como funcionan los lenguajes.
•
Especificar lenguajes regulares y autómatas finitos para reconocimiento.
•
Escribir programas de reconocimiento léxico.
•
Especificar lenguajes independientes de contexto y autómatas de pila para
•
reconocimiento.
•
Construir máquinas de turíng para reconocer lenguajes.
•
Escribir gramáticas de contexto libre.
•
Escribir programas de análisis sintáctico
MODALIDAD ABIERTA Y A DISTANCIA
La Universidad Católica de Loja UTPL
7
Guía Didáctica: Teoría de Autómatas y Lenguajes Formales
C ONTENIDOS PRIMER BIMESTRE Capitulo I: Autómatas fnitos
¿Para qué sirven los autómatas finitos? ¿Porqué estudiar teoría de autómatas? Representaciones estructurales Autómatas y complejidad Alfabetos, cadenas y lenguajes Descripción informal de los autómatas finitos Autómatas finitos deterministas Autómatas finitos no deterministas Capitulo II : Expresiones regulares y lenguajes regulares
Construcción de E-R Precedencia de operadores de E-R Conversión de E-R en autómatas finitos Capitulo III: Análisis léxico
Análisis léxico
8
UTPL La Universidad Católica de Loja
MODALIDAD ABIERTA Y A DISTANCIA
Guía Didáctica: Teoría de Autómatas y Lenguajes Formales
DESARROLLO DEL A PRENDIZAJE capítulo 1 1. GENERALIDADES AUTÓMATAS FINITOS
Contenidos Capítulo 1 Am Datos Generales:
Texto base
Introducción a la teoría de autómatas, lenguajes y computación
Capítulo Páginas
1. Para qué sirven los autómatas? 1-6
Capítulo Páginas
Horas de estudio empleadas para el desarrollo del contenido
1 horas
1.5 Conceptos centrales de la teoría de autómatas Horas de estudio empleadas para el desarrollo del contenido
32-37
Capítulo Páginas
1 horas
2. Autómatas fnitos
41 - 90
Horas de estudio empleadas para el desarrollo del contenido
10 horas
DESARROLLO
Estimado(a) estudiante, en este primer capitulo se van a tratar los temas iniciales de la Teoría de Autómatas, para un mejor entendimiento los temas se plantean en la siguiente tabla con recomendaciones que pueden guiar su trabajo.
MODALIDAD ABIERTA Y A DISTANCIA
La Universidad Católica de Loja UTPL
9
Guía Didáctica: Teoría de Autómatas y Lenguajes Formales
Descripción del contenido
Tema a revisar
Actividades recomendadas
¿Para qué sirven los Descripción del uso • Lectura de las páginas 1 y 2 autómatas finitos? de los autómatas Ingresar al Entorno Virtual de • Aprendizaje (EVA) y consultar con los(as) participantes del curso y con el profesor
¿Porqué estudiar Descripción de las • Lectura de las páginas 2, 3 y 4 teoría de aplicaciones de los • Elabore un cuadro de las principales autómatas? autómatas, aplicaciones de los autómatas • Observar y ejecutar el modelo de autómata de interruptor de la página 3 • Observar y ejecutar el autómata de la figura 1.2 página 4 Representaciones Descripción de la • Lectura de la sección 1.1.2 del texto base estructurales notacióngramatical y expresiones regulares Autómatas complejidad
y
• Lectura de la sección 1.1.3 • IngresaralEntorno VirtualdeAprendizaje (EVA) y responda la autoevaluación plateada
Alfabetos, cadenas A l f a b e t o s , • Lectura de la sección 1..5 y lenguajes cons truc ció n de cadenas, operaciones con lenguajes
10
UTPL La Universidad Católica de Loja
MODALIDAD ABIERTA Y A DISTANCIA
Guía Didáctica: Teoría de Autómatas y Lenguajes Formales
Descripción del contenido A u t ó m a t a s Generalidades f i n i t o s : sobre los introducción autómatas finitos Tema a revisar
Descripción informal de los autómatas finitos
Actividades recomendadas •
Lectura de las páginas 41 y 42
• Ingresar al Entorno Virtual de Aprendizaje (EVA)
y consultar con los(as) participantes del curso y con el profesor
Presentación del • Lectura de las páginas 42 – 50 funcionamiento • Entender las reglas básicas del proceso de un AF a través mostradas en la página 43 de un ejemplo • Analizar detenidamente los autómatas de la página 44, en las paginas 44 y 45 se halla la descripción de su funcionamiento
A u t ó m a t a s Definición f i n i t o s graficación deterministas autómatas
y • Lectura de las páginas 50 – 60 de • Tome nota de la definición formal de un autómata finito determinista (AFD) • Determine como trabaja la función de transición extendida • Determinar la diferencia entre una tabla de transiciones y un diagrama de transiciones • Ingresar al Entorno Virtual de Aprendizaje (EVA)
y responda la autoevaluación plateada
Autómatas finitos no deterministas
• Lectura de las páginas 61-74 • Determine que es un autómata finito no determinista (AFND) • Tome nota de la definición formal • Determine como trabaja la función de transición extendida • Determine cual es el lenguaje que acepta un AFND • Determinar las principales aplicaciones de los autómatas finitos. Sección 2.4. Observar el autómata de la figura 2.16, página 76 • Determinar cual es la utilidad de una transición vacía •
•
MODALIDAD ABIERTA Y A DISTANCIA
Ingresar al Entorno Virtual de Aprendizaje (EVA) y descargue materiales complementario y ejercicios planteado y resueltos sobre el tema Ingrese al Entorno Virtual de Aprendizaje (EVA) y participe en el foro del primer bimestre, las indicaciones precisas están descritas en el foro.
La Universidad Católica de Loja UTPL
11
Guía Didáctica: Teoría de Autómatas y Lenguajes Formales
Construcción de autómatas
Diseñar un AFD que acepte identificadores que inicien siempre con un guión bajo y luego puedan contener letras o dígitos. Inicialmente debemos asociar la condición inicial al estado inicial, esto significa que desde el primer estado al segundo estado únicamente puede existir una transición que etiquetada con guión bajo.
Una vez en el estado dos, se puede avanzar hacia el estado tres con una transición etiquetada con letra (L) o con digito (D).
Ahora es necesario que la cadena pueda tener mas letras o más dígitos, esto se puede conseguir haciendo que desde el estado 3 salga una arista etiquetada con letra (L) hacia otro estado (que puede ser el mismo estado 3). Lo mismo hay que hacer para reconocer más dígitos.
Desarrollemos ahora otro autómata que reconozca cadenas de letras (sobre el alfabeto {a,b}) en las que nunca puedan ir dos a’s seguidas La condición inicial no esta asociada al estado inicial, el autómata puede empezar con una letra a o con una letra b 12
UTPL La Universidad Católica de Loja
MODALIDAD ABIERTA Y A DISTANCIA
Guía Didáctica: Teoría de Autómatas y Lenguajes Formales
Ahora puede tener otra letra b con la que regresa al estado 1. Note que siempre termina en el estado 2.
Es posible construir autómatas que tengan transiciones vacías, es decir que sus aristas no tienen como etiqueta símbolos del alfabeto del autómata, en su lugar tienen vacío ( ε), generalmente las transiciones vacías se utilizan para unir autómatas, como en el caso de la figura 2.19 de la página 81 del texto base. Transformación de un AFN en un AFD.
El procedimiento consiste en agrupar los conjuntos de estados que tengan entradas y salidas (aristas) comunes, para ello se crea una tabla de transiciones (representación del AFD), esta matriz (llamada Matriz_de_D) tiene como índices el conjunto de estados (con aristas comunes) y los elementos del alfabeto. Son necesarias tres operaciones cuyos resultados se requieren al aplicar el algoritmo de transformación: Cerradura-ε de s.- Equivale al conjunto de estados del AFN que se pueden alcanzar desde s sin consumir símbolos de la entrada (o lo que es lo mismo con transiciones-e). Esta operación devuelve un conjunto de elementos (estados). Cerradura-e de T.- Sea T un conjunto de estados, esta operación equivale al conjunto de estados del AFN que se pueden alcanzar desde cada s en T sin consumir símbolos de la entrada (o lo que es lo mismo con transiciones-e). Esta operación devuelve un conjunto de elementos (estados). Mueve (T, a).- Equivale al conjunto de estados que se pueden alcanzar con un símbolo a (arista etiquetada con a ) desde algún estado s de T. Esta operación devuelve un conjunto de elementos (estados).
MODALIDAD ABIERTA Y A DISTANCIA
La Universidad Católica de Loja UTPL
13
Guía Didáctica: Teoría de Autómatas y Lenguajes Formales
En caso de tener problemas, recuerde que s es un estado; T es un conjunto de estados en donde cada uno en su momento se representa por s; a es un símbolo que etiqueta una arista que va desde un estado a otro. Por conveniencia se denominan el AFN como N y el AFD como D. Algoritmo 1. Inicio 2. A = Cerradura-ε de s /* Cerradura vacía del estado inicial del AFN */ 0 3. Agregar A al conjunto Estados_de_D /* Se crea un conjunto con el elemento A */ 4. Para cada conjunto del conjunto Estados_de_D /* Se recorre ese conjunto */ 5. T = Conjunto del conjunto Estados_de_D /* Se toma un elemento */ 6. Para cada elemento del alfabeto 7. a := elemento del alfabeto 8. U = Cerradura-e (mueve(T, a)) 9. Si U no está en Estados_de_D 10. Agregar U a Estados_de_D 11. FinSi 12. Matriz_de_D[T, a] := U 13. FinPara 14. FinPara 15. Fin_del_algoritmo
Como ejercicio vamos a tomar el diagrama del autómata no determinista siguiente:
14
UTPL La Universidad Católica de Loja
MODALIDAD ABIERTA Y A DISTANCIA