AUTOMATAS Y LENGUAJES FORMALES PRESENTACIÓN DEL CURSO, EQUIPO DOCENTE Y PREREQUISITOS PRESENTACIÓN Este curso es un contacto importante con las nociones y conceptos del proceso computacional o proceso algorítmico. Forma las bases para los cursos de complejidad y compiladores. Incluye el estudio de técnicas de reconocimiento de patrones, procesos básicos computacionales, análisis léxico y sintáctico, así como una base para computabilidad. EQUIPO DOCENTE Para el presente curso se cuenta con el catedrático titular. PRERREQUISITOS Este curso tiene como prerrequisito establecido tener aprobados 80 créditos. El participante debe estar en la disposición de colaborar activamente dentro del curso, cumplir con las actividades establecidas y respetar las fechas y horarios de entrega. REQUISITO DE APROBACIÓN NOTA: Recuerde que el curso se aprueba con 61 puntos, además debe aprobar la nota de proyectos con 61% de la nota asignada. Las evaluaciones y actividades que realizar se darán a conocer desde el primer día de clases. COMPETENCIAS DEL CURSO COMPETENCIAS GENERALES Proporcionar al estudiante la base científica para resolver problemas importantes dentro de la lógica algorítmica, fundamentales para la construcción de compiladores. COMPETENCIAS ESPECÍFICAS Que el estudiante: Que el estudiante se introduzca en el análisis léxico, como método de solución de problemas de renacimiento de patrones. Que el alumno cuente con una idea básica de procesos computacionales PLANIFICACIÓN MES Julio Tema de la Unidad Sub Tema Reglas - Iniciales Notas Actividades Clase magistral Actividades, Clase magistral Exámenes Cortos y Tareas Contenido de Clase magistral Investigaciones Bibliografía Creación de Grupos Otras Actividades 1.1 Definición de lenguaje, 1. Unidad orientada a la Lenguaje formalidad, operaciones con lenguajes. 1.2 Conceptos básicos orientados a la teoría de compiladores. 1.3 Terminología asociada a la definición conceptual de lenguaje. 1.4 Esquema y simbología de definición de lenguaje. Laboratorio Laboratorio 1 Unidad 1 Clase magistral Actividad por estudiantes Resolución de preguntas Fecha a desarrolla rse 13/07/201 9 13/07/201 9 13/07/201 9 13/07/201 9 13/07/201 9 13/07/201 9 Clase magistral 13/07/201 9 Clase magistral 13/07/201 9 Clase magistral 13/07/201 9 Clase magistral Actividad por estudiantes 13/07/201 9 20/07/201 9 2. Unidad Lenguajes formales. 2.1 Conceptos básicos. 2.2 Operadores básicos * y +. 2.3 Primera definición de lenguaje. Lenguaje formal. Lenguaje regular. 2.4 Expresiones regulares. 2.5 Precedencia en las expresiones regulares. 2.6 Álgebra de expresiones regulares. 2.7 Diseño de expresiones regulares. Agosto Laboratorio 2 Laboratorio Unidad 2 3. Unidad Autómatas finitos. 3.1 Conceptos básicos. 3.2 Definición formal de autómata finito. Autómatas finitos en representación gráfica. 3.3 Análisis de la entrada a través de un autómata finito. Lenguaje aceptado por un autómata finito. 3.4 Ejemplos de autómatas orientados a diseñar la etapa de léxico de un Clase magistral 27/07/201 9 Clase magistral 27/07/201 9 Clase magistral 27/07/201 9 Clase magistral 27/07/201 9 Clase magistral 27/07/201 9 Clase magistral 27/07/201 9 Clase magistral 27/07/201 9 Actividad por estudiantes 03/08/201 9 10/08/201 9 10/08/201 9 10/08/201 9 10/08/201 9 lenguaje de programación. 3.5 Tipos de autómatas. 3.6 Autómata finito determinista. 3.7 Autómata finito no determinista. 3.8 Análisis de la entrada a través de un autómata finito no determinista. 3.9 Autómata con transiciones-E 3.10 Análisis de la entrada a través de un autómata finito con transiciones-E. 3.11 Autómata no determinista y con transiciones-E. 3.12 Conversión de autómata finito no determinista a autómata finito determinista. 3.13 Conversión de autómata finito con transiciones-E a autómata finito determinista. 10/08/201 9 10/08/201 9 10/08/201 9 10/08/201 9 10/08/201 9 10/08/201 9 10/08/201 9 10/08/201 9 10/08/201 9 3.14 Conversión de expresión regular a autómata finito no determinista. 3.15 Conversión de expresión regular a autómata finito determinista. Primer Parcial Laboratorio 3 Primer Proyecto Septiem bre 4. Unidad Gramáticas. 10/08/201 9 10/08/201 9 Presentar Investigación: Automatas Finitos, Gramáticas, Autómatas de pila. Examen: Unidad 1 y 2 Laboratorio Unidad 3 Actividad por estudiantes 24/08/201 9 Actividad por alumnos 31/08/201 9 Aplicación de expresiones regulares 4.1 Conceptos básicos. 4.2 Definición formal. 4.3 Convenciones de notación. 4.4 Notación simplificada. 4.5 Lema de Arden. 4.6 Derivaciones, Árboles de derivación. 4.7 Lenguaje generado por una gramática. 4.8 Diseño de gramáticas. Técnicas para el diseño de gramáticas. Modularidad de las gramáticas. Límites de las gramáticas. 17/08/201 9 07/09/201 9 07/09/201 9 07/09/201 9 07/09/201 9 https://youtu.be/mCHpn-msFnw 07/09/201 9 07/09/201 9 07/09/201 9 07/09/201 9 4.9 Diseño arbitrario de gramáticas. 4.10 Primer acercamiento a https://www.youtube.com/watch? la jerarquía de Chomsky para v=YSgyXk-byrw gramáticas. 4.11 Gramática regular implementada en un autómata finito no determinista. Laboratorio 4 Segundo Parcial Laboratorio Unidad 4 Actividad por estudiantes Presentar Investigación: Autómata con transiciones-E, Lema de Arden, Examen: Unidad 3 y 4 Automatas Finitos, Gramáticas, Autómatas de pila, Máquina de Turing. 5. Unidad 5.1 Conceptos Autómatas de básicos. pila 5.2 Definición formal. 5.3 Jerarquía de lenguajes. 5.4 Reconocimiento de una cadena en un autómata de pila. 5.5 Seguimiento en formato de corrida de escritorio. 5.6 Gramáticas independientes del contexto, implementadas en autómatas de pila. Octubre Laboratorio 5 Laboratorio Unidad 5 07/09/201 9 07/09/201 9 07/09/201 9 14/09/201 9 21/09/201 9 28/09/201 9 28/09/201 9 28/09/201 9 28/09/201 9 28/09/201 9 28/09/201 9 Actividad por estudiantes 05/10/201 9 6. Unidad 6.1 Conceptos Máquina de básicos. Turing 6.2 Máquina de Turing como realizadora de cálculos. 6.3 Reconocimiento de una cadena de entrada. 6.4 Máquina de Turing como reconocedora de lenguajes. 6.5 Diseño de la máquina de Turing. 6.6 Técnicas para la construcción de las máquinas de Turing. Laboratorio 6 Noviemb re 7. Unidad Expresiones, primer acercamiento. Laboratorio Unidad 6 7.1 Consideracione s para generar expresiones en lenguajes de programación. 7.2 Conceptos básicos. 7.3 Términos dentro de una expresión. 7.4 Tipos de operadores. 7.5 Prioridad o precedencia. 7.6 Notaciones. 7.7 Generación de notaciones a través de árboles binarios. 7.8 Recorrido del árbol. 7.9 Importancia de la notación posfija. 7.10 Algoritmo para convertir de notación fija 12/10/201 9 12/10/201 9 12/10/201 9 12/10/201 9 12/10/201 9 12/10/201 9 Actividad por estudiantes 19/10/201 9 26/10/201 9 26/10/201 9 26/10/201 9 26/10/201 9 26/10/201 9 26/10/201 9 26/10/201 9 26/10/201 9 26/10/201 9 26/10/201 9 Segundo Proyecto Examen Final 2020 Enero Recuperación a notación posfija. 7.11 Algoritmo para evaluar notaciones pos fijas. 7.12 Aplicación de los algoritmos de conversión y evaluación en un programa. 7.13 Comentarios finales. Creación de Analizador Léxico Tarea de Investigación: Presentación de Unidad 7 En horario del curso 26/10/201 9 26/10/201 9 26/10/201 9 Actividad por estudiantes y catedrático 02/11/201 9 Examen: Unidad 5, 6 y 7 16/11/201 9 Todo el contenido. LECCIONES Lección 0 y 1 (Semana 1 y 2) A continuación, se incluye el detalle del Material de Aprendizaje, actividades y las evaluaciones de estas semanas. MATERIAL DE APRENDIZAJE Las lecciones 0 y 1 del curso pueden curso, área "Material de Aprendizaje". localizarlo en el menú del Lección 0: Reglas Generales Lección 1: Fundamentos de los Sistemas de Calidad ACTIVIDADES Las actividades de esta semana están localizadas en el menú del curso, en el área de Actividades. Visualice el cuadro de fechas de entrega y plazos de publicación de las tareas. En la semana 1, deberá realizar lo siguiente: Crear grupo para trabajar en el curso. Examen Corto 1 Laboratorio 1 Investigación de Unidad 1 Crear Caso 1 EVALUACIÓN A continuación, encontrará el detalle del punteo de las actividades de las lecciones 0y1 . No. Detalle de Punteo Forma de Fecha de Entrega la Actividades Relativo evaluación 1. Crear grupo de 00 No tiene Del 13 al 20 de julio. para trabajar en puntuación el grupo 2. Examen Corto 100 Revisión 20 de julio. Unidad 1 3. Laboratorio 1 100 Revisión 20 de julio. 4. 5. Investigación de Unidad 1 Crear Caso 1 100 Revisión 20 de julio. 100 Revisión 20 de julio. Lección 2(Semana 3 y 4) A continuación, se incluye el detalle del Material de Aprendizaje, actividades y las evaluaciones de esta semana. MATERIAL DE APRENDIZAJE La lección 2 del curso podrá localizarlo en el menú del curso, área "Material de Aprendizaje". Contenidos Lección2: Conociendo los distintos pasos de un compilador sencillo Definición de la sintaxis Traducción dirigida por la sintaxis Análisis sintáctico Traductor de expresiones Incorporación Máquinas de pilas abstractas ACTIVIDADES Las actividades de esta semana están localizadas en el menú del curso, en el área de Actividades. Visualice el cuadro de fechas de entrega y plazos de publicación de las tareas. En la semana 3, deberá realizar lo siguiente: Examen Corto. Transformar una Expresión Regular a Autómata Finito Determinístico EVALUACIÓN A continuación, encontrará el detalle del punteo de las actividades de las lecciones 1 y 2. No. 1. 2. Detalle de la Actividades Examen Corto Laboratorio Análisis para la construcción de un Compilador Punteo 1 1 Forma de evaluación Puntuación automática Puntuación Automática Fecha de Entrega 24 de febrero 2 de marzo Lección 3(Semana 5 y 6) A continuación, se incluye el detalle del Material de Aprendizaje, actividades y las evaluaciones de esta semana. MATERIAL DE APRENDIZAJE La lección 3 del curso podrá localizarlo en el menú del curso, área "Material de Aprendizaje". Contenidos Lección 3: Análisis Léxico Función de un analizador léxico Manejo de buffers de entrada Especificación y reconocimiento de componentes léxicos ACTIVIDADES Las actividades de esta semana están localizadas en el menú del curso, en el área de Actividades. Visualice el cuadro de fechas de entrega y plazos de publicación de las tareas. En las semanas 5 y 6, deberá realizar lo siguiente: Examen Corto. Creación de componentes léxicos EVALUACIÓN A continuación, encontrará el detalle del punteo de las actividades de la lección 3. No. 1. 2. Detalle de la Actividades Examen Corto Creación de componentes léxicos Punteo 100 100 Forma de evaluación Puntuación automática Puntuación Automática Fecha de Entrega 6 de marzo 16 de marzo Lección 4(Semana 7 y 8) A continuación, se incluye el detalle del Material de Aprendizaje, actividades y las evaluaciones de esta semana. MATERIAL DE APRENDIZAJE La lección 4 del curso podrá localizarlo en el menú del curso, área "Material de Aprendizaje". Contenidos Lección 4: Análisis Sintáctico Función de un analizador sintáctico Gramáticas independientes del contexto Escritura de una gramática Análisis sintáctico ascendente – descendentes y por precedencia de operadores ACTIVIDADES Las actividades de esta semana están localizadas en el menú del curso, en el área de Actividades. Visualice el cuadro de fechas de entrega y plazos de publicación de las tareas. En las semanas 7 y 8, deberá realizar lo siguiente: Examen Corto. Creación de componentes léxicos EVALUACIÓN A continuación, encontrará el detalle del punteo de las actividades de la lección 3. No. 1. 2. Detalle de la Actividades Examen Corto Creación de componentes léxicos Punteo 100 100 Forma de evaluación Puntuación automática Puntuación Automática Fecha de Entrega 24 de abril 2 de mayo