Download - IGTeoriaAutomatas01
Teoría de autómatas y lenguajes formales
José Ramón Garitagoitia Dpto. Ingeniería Matemática e Informática
Universidad Pública de Navarra
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 2
Descripción
• Obligatoria; Curso 3º; Cuatrimestre 2º. • 9 Créditos (4,5 Teóricos; 4,5 Prácticos) • Descriptor (B.O.E.):
– Máquinas secuenciales y autómatas finitos. Máquinas de Turing. Funciones recursivas. Gramáticas y lenguajes formales.
• Requisitos: – Haber cursado las asignaturas Programación
(41107), Estructuras de Datos (41102) y Algoritmia (41204).
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 3
Contextualización
• La asignatura consta de dos partes. – La primera parte se dedica a la introducción de los
conceptos fundamentales de la Teoría de Lenguajes Formales.
– La segunda parte de la asignatura introduce los fundamentos de la Teoría de la Computación.
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 4
Contextualización
• El objetivo de la primera parte es la presentación en profundidad del concepto de Lenguaje Formal de acuerdo a la propuesta de Chomsky. El desarrollo de esta presentación busca profundizar en las dos categorías de lenguajes formales de mayor aplicación: Lenguajes Regulares (LR) y Lenguajes Independientes de Contexto (LIC).
• Dentro de cada categoría se estudian los problemas de generación y de aceptación de un lenguaje perteneciente a la misma, introduciéndose en cada caso los mecanismos formales que permiten resolver ambos problemas:
– Gramáticas formales para resolver el problema de generación: Expresiones Regulares en el caso de los LR y Gramáticas Independientes del Contexto en el caso de los LIC.
– Autómatas para resolver el problema de aceptación: Autómatas Finitos en el caso de los LR y Autómatas a Pila en el caso de los LIC.
• La presentación de dichas categorías de lenguajes y de los conceptos y mecanismos asociados a las mismas se orienta hacia sus aspectos más aplicados como son el diseño de analizadores léxicos (caso de los LR) y sintácticos (caso de los LIC), para sentar las bases formales que permitan abordar posteriormente la implementación de compiladores e intérpretes.
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 5
Contextualización
• La segunda parte de la asignatura presentará los argumentos teóricos que, de acuerdo a la tesis de Church, permiten considerar a la Máquina de Turing como mecanismo abstracto de computación universal. A continuación, dentro del contexto de las máquinas de Turing, se analizarán los aspectos de computabilidad y tratabilidad de problemas, extrayéndose algunas conclusiones sobre la posibilidad teórica y práctica de resolución algorítmica de problemas.
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 6
Objetivos y competencias
• Los objetivos de aprendizaje de la parte de teoría que el estudiante debe alcanzar son:
– Saber especificar autómatas que reconozcan lenguajes regulares. – Saber definir gramáticas que generen lenguajes regulares. – Saber especificar autómatas que reconozcan lenguajes independientes del
contexto. – Saber definir gramáticas que generen lenguajes independientes del
contexto. – Tanto para lenguajes regulares como para lenguajes independientes del
contexto, ser capaz de convertir el mecanismo reconocedor en el mecanismo generador, y viceversa.
– Ser capaz de especificar máquinas de Turing que correspondan a algoritmos para el tratamiento de cadenas.
– Conocer la diferencia entre lenguajes recursivos y lenguajes recursivamente enumerables, y comprender sus consecuencias.
– Conocer la existencia de problemas algorítmicamente insolubles.
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 7
Objetivos y competencias
• Los objetivos de aprendizaje de la parte de prácticas que el estudiante debe alcanzar son:
– Ser capaz de preparar shell scripts moderadamente avanzados. – Adquirir suficiente experiencia práctica en el manejo de las herramientas
sed y flex, y en la programación en lenguaje awk. – Saber especificar expresiones regulares que describan patrones léxicos, y
saber emplear eficazmente esas expresiones con las herramientas anteriores para la solución de problemas.
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 8
Bibliografía
• Bibliografía básica
• J.E. Hopcroft, R. Motwani, J.D. Ullman; Introducción a la Teoría de Autómatas, Lenguajes y Computación; Addison-Wesley, 2002.
• J.E. Hopcroft, J.D. Ullman; Introduction to Automata Theory, Languages, and Computation; Addison-Wesley, 1979.
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 9
Bibliografía
• Bibliografía complementaria
• J. G. Brookshear; Teoría de la Computación: Lenguajes Formales, Autómatas y Complejidad; Addison-Wesley Iberoamericana, 1993.
• D. Kelley; Teoría de autómatas y lenguajes formales; Prentice-Hall, 1995.
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 10
Bibliografía
• Otros recursos • http://www1.unavarra.es/ets-industrialesytelecos/estudios/
primer-y-segundo-ciclo/ingenieria-tecnica-en-informatica-de-gestion – Descripción de la asignatura – Horarios de clases – Fechas de exámenes
• http://www-db.stanford.edu/~ullman/ialc.html – Materiales para la primera parte
• https://miaulario.unavarra.es/portal – Trasparencias de la primera parte – Trasparencias y lecturas de la segunda parte – Guiones de prácticas
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 11
Contenido Parte I
Tema 1. Introducción Tema 2. Autómatas de estados finitos!Tema 3. Expresiones y lenguajes regulares Tema 4. Propiedades de los lenguajes regulares Tema 5. Gramáticas independientes del contexto Tema 6. Autómatas a pila Tema 7. Propiedades de los LIC Tema 8. La jerarquía de Chomsky
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 12
Contenido Parte II
Tema 9. Máquinas de Turing Tema 10. Problemas indecidibles Tema 11. Problemas intratables
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 13
Contenido Prácticas
P1. Preparación de bash shell scripts (2 sesiones). P2. Expresiones regulares en Linux y utilidades tr y
grep (2 sesiones). P3. Utilidad sed (3 sesiones). P4. Lenguaje dot (1 sesión). P5. Lenguaje awk (3 sesiones). P6. Utilidad flex (4 sesiones).
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 14
Evaluación
• Para aprobar la asignatura es necesario haber aprobado cada parte (teoría y práctica) por separado.
• El examen de la parte teórica tendrá dos partes: (1) Autómatas y gramáticas; (2) Computabilidad.
• El examen de la parte práctica se realizará en laboratorio.
• La calificación final del estudiante se calcula del modo siguiente: – Si ha aprobado ambos exámenes:
Calificación final = (NotaTeoría + NotaPráctica) / 2 – Si ha suspendido al menos uno de los exámenes:
Calificación final = min(NotaTeoría, NotaPráctica)
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 15
• Tema 1 – Introducción
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 16
Tema 1. Introducción
1. ¿Por qué estudiar teoría de autómatas? 2. Conceptos centrales de la teoría de
autómatas
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 17
Motivación
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 18
Motivación
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 19
Autómatas finitos
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 20
Autómatas finitos
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 21
Representaciones estructurales
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 22
Conceptos fundamentales
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 23
Conceptos fundamentales
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 24
Conceptos fundamentales
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 25
Conceptos fundamentales
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 26
Conceptos fundamentales
2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 27
Conceptos fundamentales