Syllabus
SCD-1016 LENGUAJES Y AUTOMATAS II
MIM. CARLOS OMAR CHAB LARA
cochab@itescam.edu.mx
Semestre | Horas Teoría | Horas Práctica | Créditos | Clasificación |
7 | 2 | 3 | 5 | Ingeniería Aplicada |
Prerrequisitos |
El alumno debe poseer cierto “conocimiento orientado a las ciencias computacionales” Dominio de los fundamentos de POO además de estructuras de datos y matemáticas discretas. Es útil tener un conocimiento sobre varios lenguajes de programación |
Competencias | Atributos de Ingeniería |
Árboles de expresiones | Identificar, formular y resolver problemas de ingeniería aplicando los principios de las ciencias básicas e ingeniería | Acciones semánticas de un analizador sintáctico | Aplicar, analizar y sintetizar procesos de diseño de ingeniería que resulten en proyectos que cumplen las necesidades específicas | Generación de la tabla de símbolo y tabla de direcciones | Aplicar, analizar y sintetizar procesos de diseño de ingeniería que resulten en proyectos que cumplen las necesidades específicas | Manejo de errores semánticos. | Identificar, formular y resolver problemas de ingeniería aplicando los principios de las ciencias básicas e ingeniería | Pila semántica en un analizador sintáctico | Aplicar, analizar y sintetizar procesos de diseño de ingeniería que resulten en proyectos que cumplen las necesidades específicas | Esquema de traducción | Identificar, formular y resolver problemas de ingeniería aplicando los principios de las ciencias básicas e ingeniería | Comprobaciones de tipos en expresiones | Desarrollar y conducir una experimentación adecuada; analizar e interpretar datos y utilizar el juicio ingenieril para establecer conclusiones | Notaciones | Aplicar, analizar y sintetizar procesos de diseño de ingeniería que resulten en proyectos que cumplen las necesidades específicas | Representaciones de código.Intermedio | Identificar, formular y resolver problemas de ingeniería aplicando los principios de las ciencias básicas e ingeniería | Esquema de generación | Aplicar, analizar y sintetizar procesos de diseño de ingeniería que resulten en proyectos que cumplen las necesidades específicas | Tipos de optimización | Reconocer la necesidad permanente de conocimiento adicional y tener la habilidad para localizar, evaluar, integrar y aplicar este conocimiento adecuadamente | Registros | Identificar, formular y resolver problemas de ingeniería aplicando los principios de las ciencias básicas e ingeniería | Lenguaje ensamblador. | Identificar, formular y resolver problemas de ingeniería aplicando los principios de las ciencias básicas e ingeniería | Lenguaje máquina | Identificar, formular y resolver problemas de ingeniería aplicando los principios de las ciencias básicas e ingeniería | Administración de memoria | Desarrollar y conducir una experimentación adecuada; analizar e interpretar datos y utilizar el juicio ingenieril para establecer conclusiones |
Normatividad |
El alumno podrá tener un retraso a la clase con una tolerancia de 15 minutos después del inició de la clase. El alumno deberá participar en todas las actividades escolares que se requieran. El alumno tendrá que justificar sus faltas ante la dirección académica. Cumplir con todos los ejercicios en clase y extraclase. Plan contingencia COVID-19 Elaborar un calendario de actividades quincenal (deberá ser publicado para su correcto seguimiento) |
Materiales |
Bibliografía disponible en el Itescam | |||||
Título |
Autor |
Editorial |
Edición/Año |
Ejemplares |
|
Diseño de compiladores modernos / |
Grune, Dick |
McGraw-Hill, |
2007. |
2 |
- |
Compiladores, teoría e implementación / |
Ruíz Catalán, Jacinto. |
Alfaomega, |
2010. |
3 |
- |
Compiladores : principios, técnicas y herramientas / |
Aho, Alfred V. |
Pearson educación, |
2a. / 2008. |
3 |
- |
Compiladores : principios, técnicas y herramientas / |
Aho, Alfred V. |
Pearson educación, |
2a. / 2008. |
3 |
- |
Parámetros de Examen | ||
PARCIAL 1 | De la actividad 1.1.1 a la actividad 1.7.1 | |
PARCIAL 2 | De la actividad 2.1.1 a la actividad 4.4.1 |
Contenido (Unidad / Competencia / Actividad / Material de Aprendizaje) | |
1. Análisis semántico.
1.1. Árboles de expresiones 1.1.1. Árbol Sintáctico COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Árboles de análisis sintáctico pág 45 - 52 COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Construcción de árboles sintácticos pág 92 - 97 Cómo dibujar un árbol sintáctico (123678 bytes) Manual de prácticas (208159 bytes) 1.2. Acciones semánticas de un analizador sintáctico 1.2.1. Acciones semánticas COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Esquemas de traducción pág 57 - 71 COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Generadores de analizadores sintácticos pág 287 - 291 1.3. Comprobaciones de tipos en expresiones 1.3.1. Comprobación de Tipos COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Comprobación de tipos pág 386 - 399 COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Herramientas de productividad de software pág 23 - 24 COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Comprobación de tipos pág 92 - 97 1.4. Pila semántica en un analizador sintáctico 1.4.1. Pilas semanticas COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Análisis sintáctico pág 60 - 68 https://lucyleonmoreno.blogspot.com/2019/09/pila-semantica-en-un-analizador.html 1.5. Esquema de traducción 1.5.1. Traducción orientada a la sintaxis COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Traducción orientada a la sintaxis pág 57 - 60 COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Construcción de árboles sintácticos pág 68 - 73 1.6. Generación de la tabla de símbolo y tabla de direcciones 1.6.1. Tabla de símbolos COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Tablas de símbolo pág 85 - 90 1.7. Manejo de errores semánticos. 1.7.1. Errores sintácticos COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Manejo de los errores sintácticos pág 194 - 195 |
2. Generación de código intermedio
2.1. Notaciones 2.1.1. Prefija https://runestone.academy/runestone/static/pythoned/BasicDS/ExpresionesInfijasPrefijasYSufijas.html 2.1.2. Infija https://tecdigital.tec.ac.cr/revistamatematica/ContribucionesV7_n2_2006/Parseador/index.html 2.1.3. Postfija Pilas y expresiones aritméticas 2.2. Representaciones de código.Intermedio 2.2.1. Notación Polaca https://thales.cica.es/rd/Recursos/rd99/ed99-0636-03/notacion_polaca.html 2.2.2. Código P. https://www.unocero.com/noticias/que-es-el-codigo-p/ http://pepperslina.over-blog.net/article-31437284.html 2.2.3. Triplos COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Código de tres direcciones pág 363 - 366 Generación de código intermedio (49066 bytes) 2.2.4. Cuádruplos COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Cuádruplos pág 366 - 370 2.3. Esquema de generación 2.3.1. Variables y constantes. COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Tipos y declaraciones pág 370 - 378 2.3.2. Expresiones COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Traducción de expresiones pág 378 - 386 2.3.3. Instrucción de asignación COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Conversiones de tipos pág 386 - 399 2.3.4. Instrucciones de control COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Flujo de control pág 399 - 410 2.3.5. Funciones COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Código intermedio para procedimientos pág 422 - 424 2.3.6. Estructuras COMPILADORES. PRINCIPIOS, TECNICAS Y HERRAMIENTAS. Segunda edición. Instrucciones de flujo de control pág 413 - 422 |
3. Optimización
3.1. Tipos de optimización 3.1.1. Locales 3.1.2. Ciclos 3.1.3. Globales 3.1.4. De mirilla |
4. Generación de código objeto
4.1. Registros 4.1.1. Registros https://lenguajeensambladoryelementos.wordpress.com/2013/04/30/registros/ 4.2. Lenguaje ensamblador. 4.2.1. Lenguaje ensamblados https://www.unioviedo.es/ate/alberto/TEMA3-Ensamblador.pdf 4.3. Lenguaje máquina 4.3.1. Lenguaje maquina http://atc2.aut.uah.es/~avicente/asignaturas/ec/pdf/ec_t4.pdf 4.4. Administración de memoria 4.4.1. Gestion de la memoria http://www.sc.ehu.es/acwlaroa/SO2/Apuntes/Cap4.pdf |
Prácticas de Laboratorio (20232024P) |
Fecha |
Hora |
Grupo |
Aula |
Práctica |
Descripción |
Cronogramas (20232024P) | |||
Grupo | Actividad | Fecha | Carrera |
Temas para Segunda Reevaluación |