Syllabus
SCD-1015 LENGUAJES Y AUTOMATAS I
DR. JOSE LUIS LIRA TURRIZA
jlira@itescam.edu.mx
Semestre | Horas Teoría | Horas Práctica | Créditos | Clasificación |
6 | 3 | 2 | 5 | Ciencia Ingeniería |
Prerrequisitos |
MATEMÁTICAS PARA COMPUTADORA:
|
FUNDAMENTOS DE PROGRAMACION:
|
Competencias | Atributos de Ingeniería |
Crear un AF mediante un lenguaje de programación. | Aplicar, analizar y sintetizar procesos de diseño de ingeniería que resulten en proyectos que cumplen las necesidades específicas | Identifica los conceptos de lenguajes formales para comprender las fases de un compilador y traductor | Identificar, formular y resolver problemas de ingeniería aplicando los principios de las ciencias básicas e ingeniería | Diseñar y construir o simular una MT | Aplicar, analizar y sintetizar procesos de diseño de ingeniería que resulten en proyectos que cumplen las necesidades específicas |
Normatividad |
1. Presentar los ejercicios en la hora y el día programados 2. Respetar a sus compañeros en sus comentarios |
Materiales |
No se requieren materiales adicionales a los especificados en la programación de clases. |
Bibliografía disponible en el Itescam | |||||
Título |
Autor |
Editorial |
Edición/Año |
Ejemplares |
|
Lenguajes formales y teoría de autómatas / |
Giró, Juan |
Alfaomega, |
2015. |
1 |
- |
Compiladores : principios, técnicas y herramientas / |
Aho, Alfred V. |
Pearson educación, |
2a. / 2008. |
3 |
Si |
Parámetros de Examen | ||
PARCIAL 1 | De la actividad 1.1.1 a la actividad 3.1.6 | |
PARCIAL 2 | De la actividad 4.1.1 a la actividad 6.1.3 |
Contenido (Unidad / Competencia / Actividad / Material de Aprendizaje) | |
1. Introducción a la Teoría de Lenguajes Formales.
1.1. Identifica los conceptos de lenguajes formales para comprender las fases de un compilador y traductor 1.1.1. Definir alfabetos y lenguajes en un caso de estudio. ![]() ![]() ![]() 1.1.2. Obtener un alfabeto a partir de un lenguaje. ![]() 1.1.3. Investigar la estructura de diferentes traductores. ![]() 1.1.4. Estructurar mediante un diagrama, las fases de un compilador. ![]() ![]() 1.1.5. *Estructurar mediante un diagrama, las fases de un compilador ![]() |
2. Expresiones Regulares
2.1. Crear y reconocer ER para solucionar problemas del entorno 2.1.1. Investigar las expresiones regulares y sus operaciones 2.1.2. Generar cadenas a partir de una expresión regular. 2.1.3. Obtener una expresión regular a partir de un grupo de cadenas o visceversa. |
3. Autómatas Finitos
3.1. Crear un AF mediante un lenguaje de programación. 3.1.1. Determinar la notación formal de un AF. ![]() 3.1.2. Conocer la diferencia entre un AFN y AFD. ![]() 3.1.3. Construir un AF a partir de un ER. ![]() ![]() 3.1.4. Construir un AF a partir de la descripción de un caso de estudio. ![]() 3.1.5. Convertir un AFN a AFD. ![]() 3.1.6. Minimizar estados en un AF. ![]() |
4. Análisis Léxico
4.1. Diseñar y construir o simular una MT 4.1.1. Elaborar por equipo, la identificación de lexemas, componentes léxicos y patrones a partir de un lenguaje. 4.1.2. Conocer los elementos de una tabla de tokens. 4.1.3. Definir las reglas de un lenguaje de programación propio. 4.1.4. Identificar patrones válidos y distinguir los errores léxicos, generar autómatas y tabla de tokens del lenguaje propuesto. 4.1.5. Construir un analizador léxico mediante un lenguaje de programación. (Utilizar un generador de analizador léxico como ejemplo). |
5. Análisis Sintáctico
5.1. Construye un analizador sintáctico a partir de un lenguaje de programación. 5.1.1. Identificar la notación formal de una gramática. ![]() ![]() ![]() ![]() 5.1.2. Buscar la sintaxis de la construcción de los Lenguajes de Programación por medio de GLC o utilizando notación BNF (BackusNaur Form). ![]() ![]() 5.1.3. Investigar las formas normales de Chomsky y Conocer la notación de los diagramas de sintaxis. ![]() ![]() ![]() 5.1.4. Construir diagramas de sintaxis de un lenguaje. ![]() 5.1.5. Construir una GLC a partir de los diagramas de sintaxis. ![]() 5.1.6. Eliminar la ambigüedad de una gramática. ![]() |
6. Máquinas de Turing
6.1. Diseña y construye o simula una Maquina de Turing (MT), para el reconocimiento de cadenas propias de lenguajes. 6.1.1. Identificar la notación formal de una MT. 6.1.2. Construir una MT a partir de un caso de estudio. 6.1.3. Simular a través de un lenguaje de alto nivel, la representación de una MT |
Prácticas de Laboratorio (20232024P) |
Fecha |
Hora |
Grupo |
Aula |
Práctica |
Descripción |
Cronogramas (20232024P) | |||
Grupo | Actividad | Fecha | Carrera |
6 A | 1.1.1 Definir alfabetos y lenguajes en un caso de estudio. | 2024-01-29 | ISIC-2010-224 |
6 A | 1.1.2 Obtener un alfabeto a partir de un lenguaje. | 2024-01-30 | ISIC-2010-224 |
6 A | 1.1.3 Investigar la estructura de diferentes traductores. | 2024-02-06 | ISIC-2010-224 |
6 A | 1.1.4 Estructurar mediante un diagrama, las fases de un compilador. | 2024-02-19 | ISIC-2010-224 |
6 A | 2.1.1 Investigar las expresiones regulares y sus operaciones | 2024-02-20 | ISIC-2010-224 |
6 A | 2.1.2 Generar cadenas a partir de una expresión regular. | 2024-02-26 | ISIC-2010-224 |
6 A | 2.1.3 Obtener una expresión regular a partir de un grupo de cadenas o visceversa. | 2024-02-27 | ISIC-2010-224 |
6 A | 3.1.1 Determinar la notación formal de un AF. | 2024-03-04 | ISIC-2010-224 |
6 A | 3.1.2 Conocer la diferencia entre un AFN y AFD. | 2024-03-05 | ISIC-2010-224 |
6 A | 3.1.3 Construir un AF a partir de un ER. | 2024-03-11 | ISIC-2010-224 |
6 A | 3.1.4 Construir un AF a partir de la descripción de un caso de estudio. | 2024-03-12 | ISIC-2010-224 |
6 A | 3.1.5 Convertir un AFN a AFD. | 2024-03-19 | ISIC-2010-224 |
6 A | 4.1.1 Elaborar por equipo, la identificación de lexemas, componentes léxicos y patrones a partir de un lenguaje. | 2024-04-22 | ISIC-2010-224 |
6 A | 4.1.2 Conocer los elementos de una tabla de tokens. | 2024-04-23 | ISIC-2010-224 |
6 A | 4.1.3 Definir las reglas de un lenguaje de programación propio. | 2024-05-06 | ISIC-2010-224 |
6 A | 4.1.4 Identificar patrones válidos y distinguir los errores léxicos, generar autómatas y tabla de tokens del lenguaje propuesto. | 2024-05-07 | ISIC-2010-224 |
6 A | 4.1.5 Construir un analizador léxico mediante un lenguaje de programación. (Utilizar un generador de analizador léxico como ejemplo). | 2024-05-13 | ISIC-2010-224 |
6 A | 4.1.5 Construir un analizador léxico mediante un lenguaje de programación. (Utilizar un generador de analizador léxico como ejemplo). | 2024-05-14 | ISIC-2010-224 |
6 A | 5.1.1 Identificar la notación formal de una gramática. | 2024-05-20 | ISIC-2010-224 |
6 A | 5.1.1 Identificar la notación formal de una gramática. | 2024-05-21 | ISIC-2010-224 |
Temas para Segunda Reevaluación |