IGTeoriaAutomatas01

14
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).

Transcript of IGTeoriaAutomatas01

Page 1: 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).

Page 2: IGTeoriaAutomatas01

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.

Page 3: IGTeoriaAutomatas01

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.

Page 4: IGTeoriaAutomatas01

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.

Page 5: IGTeoriaAutomatas01

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

Page 6: IGTeoriaAutomatas01

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

Page 7: IGTeoriaAutomatas01

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)

Page 8: IGTeoriaAutomatas01

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

Page 9: IGTeoriaAutomatas01

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

Page 10: IGTeoriaAutomatas01

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

Page 11: IGTeoriaAutomatas01

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

Page 12: IGTeoriaAutomatas01

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

Page 13: IGTeoriaAutomatas01

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

Page 14: IGTeoriaAutomatas01

2008, J.R. Garitagoitia. 41303 Teoría de Autómatas y Lenguajes Formales 27

Conceptos fundamentales