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