Programa de la asignatura Curso: 2008 / 2009 AUTÓMATAS Y LENGUAJES FORMALES (1314) PROFESORADO Profesor/es: CÉSAR IGNACIO GARCÍA OSORIO - correo-e: cgosorio@ubu.es FICHA TÉCNICA Titulación: INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN Centro: ESCUELA POLITÉCNICA SUPERIOR Nombre asignatura: AUTÓMATAS Y LENGUAJES FORMALES (1314) Código de la asignatura: 1314 Tipo de asignatura: Optativa Nivel / Ciclo: 1 Curso en el que se imparte: 3 Duración y fechas: Cuatrimestral - 1er Cuatrimestre Créditos: 9.0 Créditos teóricos: 4.5 Créditos prácticos: 4.5 Áreas: LENGUAJES Y SISTEMAS INFORMATICOS Tipo de curso: Oficial Descriptores: Según BOE Requisitos previos: Según BOE Idioma: Español COMPETENCIAS TRANSVERSALES O GENÉRICAS INSTRUMENTALES Análisis y síntesis: 3 Organización y planificación: 3 Comunicación oral y escrita en la lengua nativa: 2 Conocimiento de una lengua extranjera: 1 Conocimientos de informática relativos al ámbito de estudio: 2 Gestión de la información: 1 Resolución de problemas: 3 Toma de decisiones: 1 PERSONALES Trabajo en equipo: 2 Trabajo en un equipo de carácter interdisciplinar: 1 Relaciones interpersonales: 1 Pág. 1/5
Reconocimiento a la diversidad y la multiculturalidad: 1 Razonamiento crítico: 3 SISTÉMICAS Aprendizaje autónomo: 1 Creatividad: 1 COMPETENCIAS ESPECÍFICAS CONOCIMIENTOS DISCIPLINARES (SABER) HABILIDADES PROFESIONALES (SABER HACER) ACTITUDES (SABER SER - SABER ESTAR) COMP. ACADÉMICAS (SABER TRASCENDER) OTRAS COMPETENCIAS ESPECÍFICAS OTROS OBJETIVOS DE LA ASIGNATURA En esta asignatura se estudia los fundamentos de la computación, la jerarquía de modelos de máquinas computacionales, de gramáticas formales y de los lenguajes correspondientes. Es importante que el alumno comprenda no sólamente la forma en que funciona cada autómata o máquina, sino sobre todo su correspondencia con lenguajes y gramáticas, y la relación jerárquica entre ellos. Asimismo, se enfatiza la conexión de los contenidos de esta asignatura con la teoría subyacente en el diseño y construcción de compiladores, que se amplia en la asignatura de cuarto Procesadores de Lenguajes. Por tanto, cursar esta asignatura es de suma importancia para los alumnos que tengan la intención de realizar la superior. Una lista más detallada de los objetivos se puede consultar en la página web de la asignatura: http://pisuerga.inf.ubu.es/cgosorio/alef/. METODOLOGÍA Y RECURSOS PARA EL APRENDIZAJE Clases magistrales con apoyo de transparencias y de la página web de la asignatura: http://pisuerga.inf.ubu.es/cgosorio/alef/. También se proponen trabajos de realización voluntaria, que permiten al alumno profundizar en los temas que más le interesen. Pág. 2/5
BREVE DESCRIPCIÓN DE LAS ACTIVIDADES PRÁCTICAS Las clases prácticas son de dos tipos: Clases de laboratorio con ordenador, en las que se utilizan distintos simuladores de los autómatas y máquinas definidos en las clases de teoría. También se explica en detalle la sintaxis de flex, un programa que utilizando expresiones regulares permite la programación eficiente de una amplia variedad de tareas que impliquen el análisis de ficheros de texto. Clases de corrección de ejercicios en las que se ilustran la aplicación de los algoritmos. La participación en las clases de corrección de ejercicios se tiene en cuenta en la evaluación de la asignatura. SEGUIMIENTO DEL ALUMNO Y CRITERIOS DE EVALUACIÓN Para la evaluación de los contenidos teóricos, se realizarán dos exámenes parciales y un tercer examen final en el que el alumno se examinará únicamente de la materia pendiente. También se pedirá la entrega de los distintos ejercicios realizados en las clases de laboratorio. La nota final estará constituida por un 60% de la nota de los exámenes, un 30% de la nota de las prácticas, y un 10% de la nota de corrección de ejercicios y participación en clase. Esta última componente de la nota pretende premiar a aquellos alumnos que llevan la asignatura al día y que realizan los ejercicios. Por último, es posible la realización de trabajos voluntarios cuya calificación se sumará al 40% que supone la nota de prácticas y la nota de participación en clase. BIBLIOGRAFÍA BÁSICA SOBRE LA MATERIA Lenguajes gramáticas y autómatas: un enfoque práctico, PEDRO ISASI PALOMA MARTÍNEZ DANIEL BORRAJO, (519.71ISAlen), 1997, Addison-Wesley, Teoría de autómatas y lenguajes formales, DEAN KELLEY, (510.62KELteo), 1995, Prentice-Hall, Teoría de la computación Lenguajes formales autómatas y complejidad, J GLENN BROOKSHEAR, (510.62BROteo), 1993, Addison-Wesley Iberoamericana, Teoría de Lenguajes Gramáticas y Autómatas, M ALFONSECA J SANCHO M MARTÍNEZ, (519.7ALFteo), 1997, Publicaciones RAEC, BIBLIOGRAFÍA COMPLEMENTARIA Flex: Un generador de analizadores léxicos rápidos, VERN PAXSON, (http://es.tldp.org/manuales-lucas/flex/), 1995, Free Software Foundation, RECURSOS DE INTERNET OBSERVACIONES Y OTROS DATOS Pág. 3/5
ESTRUCTURA DE CONTENIDOS (TEMAS) AUTÓMATAS Y LENGUAJES FORMALES (1314) UD1.- Contexto histórico e introducción a la compilación. UD2.- Lenguajes formales. > 2.1 Alfabetos y cadenas. > 2.2 Lenguajes. > 2.3 Operaciones sobre lenguajes. UD3.- Gramáticas formales. > 3.1 Definiciones. > 3.2 Notaciones gramaticales. > 3.3 Clasificación de Chomsky. > 3.4 Ejemplos. UD4.- Lenguajes regulares y análisis léxico. > 4.1 Conjuntos y expresiones regulares, y sus propiedades. > 4.2 Autómatas finitos: deterministas (AFD) y no deterministas (AFND). > 4.3 Equivalencia entre AFD y AFND. > 4.4 Algoritmo de minimización. UD5.- Teorema de análisis y de síntesis. > 5.1 Método de Thompson. > 5.2 Método de Aho-Sethi-Ullman. > 5.3 Método de las derivadas. > 5.4 Demostración del teorema de análisis. > 5.5 Ecuaciones características. > 5.6 Lema de bombeo. > 5.7 Propiedades de cierre. UD6.- Aplicando las expresiones regulares. > 6.1 Formato del fuente lex/flex. > 6.2 Sintaxis ampliada para las expresiones regulares. > 6.3 Acciones en lex/flex. > 6.4 Ambigüedad. > 6.5 Sensibilidad al contexto. > 6.6 Ejemplos. UD7.- Autómatas de pila y lenguajes independientes del contexto. > 7.1 Definiciones. > 7.2 Indeterminismo. > 7.3 Relación entre autómatas de pila y gramáticas independientes del contexto. UD8.- Gramáticas independientes del contexto. > 8.1 Limpieza de gramáticas. > 8.2 Formas normal de Chomsky. > 8.3 Lema de bombeo. > 8.4 Algoritmo de Cocke-Younger-Kasami. UD9.- Análisis de lenguajes independientes del contexto. > 9.1 Análisis recursivo descendente. > 9.2 Análisis por desplazamiento-reducción. UD10.- Máquinas de Turing y Lenguajes. Pág. 4/5
> 10.1 Definición de máquina de Turing. > 10.2 Funcionamiento. > 10.3 Ejemplos de máquinas de Turing. UD11.- Variantes de máquinas de Turing. > 11.1 Restricciones al modelo básico (escribir/mover, cinta limitada en un sentido, binaria). > 11.2 Ampliaciones al modelo básico (multipista, multicabeza, multicinta, multidimensional, no determinista, RAMs). UD12.- Sobre la descripción finita de lenguajes infinitos. > 12.1 Concepto de numerabilidad y no numerabilidad. > 12.2 Ejemplos de conjuntos no numerables. > 12.3 Numerabilidad del conjunto de gramáticas. > 12.4 Lenguajes recursivos y recursivamente enumerables. UD13.- Límites de las máquinas de Turing. > 13.1 Máquina de Turing Universal. > 13.2 Número de máquinas de Turing. > 13.3 Número de funciones. > 13.4 Un lenguaje no estructurado por frases. > 13.5 El problema de parada. Pág. 5/5