Syllabus

SCD-1016 LENGUAJES Y AUTOMATAS II

DR. JOSE LUIS LIRA TURRIZA

jlira@itescam.edu.mx

Semestre Horas Teoría Horas Práctica Créditos Clasificación
7 2 3 5 Ingeniería Aplicada

Prerrequisitos
Competencias Genéricas
  • Solución de problemas
  • Capacidad de Organizar y planificar
  • Trabajo en equipo
Competencias Específicas
  • Capacidad para definir, diseñar, construir y programar las fases de análisis léxico y sintáctico de un traductor o compilador

Competencias Atributos de Ingeniería
Diseña mediante el uso de reglas semánticas dirigidas por sintaxis, un analizador semántico para un compilador.   Identificar, formular y resolver problemas de ingeniería aplicando los principios de las ciencias básicas e ingeniería
Diseña las reglas para traducir el código fuente a un código intermedio.   Aplicar, analizar y sintetizar procesos de diseño de ingeniería que resulten en proyectos que cumplen las necesidades específicas
Desarrollar y aplicar acciones para la gramática del lenguaje prototipo y en la generación de código intermedio   Aplicar, analizar y sintetizar procesos de diseño de ingeniería que resulten en proyectos que cumplen las necesidades específicas
Conoce e identifica los diferentes tipos de optimización que permita eficientar el código intermedio.   Aplicar, analizar y sintetizar procesos de diseño de ingeniería que resulten en proyectos que cumplen las necesidades específicas
Aplica técnicas para la optimización de código intermedio.   Aplicar, analizar y sintetizar procesos de diseño de ingeniería que resulten en proyectos que cumplen las necesidades específicas
Utiliza un lenguaje de bajo nivel para traducir el código construido a lenguaje máquina para su ejecución.   Aplicar, analizar y sintetizar procesos de diseño de ingeniería que resulten en proyectos que cumplen las necesidades específicas

Normatividad
El alumno deberá:
1.- Cumplir con todos los trabajos marcados en clases y extraclases.
2.- No se aceptaran trabajos documentales, programas o tareas de forma extemporánea.
3.- Participar en el salón de clases cuando se le requiera.
4.- Tener el mínimo de asistencias requerido por la subdirección académica (80%).
5.- Tener un comportamiento de disciplina dentro del salón de clases.
6.- Estar a más tardar 15 min. después de la entrada del profesor, después de lo cual no se le dejará entrar.
7.- Colaborar con su equipo en los trabajos designados.

Materiales
No Aplica

Bibliografía disponible en el Itescam
Título
Autor
Editorial
Edición/Año
Ejemplares
Lenguajes, Gramáticas y autómatas : Curso Básico /
Cases Muñoz, Rafael
Alfaomega,
2002.
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 2.2.3
PARCIAL 2 De la actividad 3.1.1 a la actividad 4.1.4

Contenido (Unidad / Competencia / Actividad / Material de Aprendizaje)
1. Análisis Semántico
          1.1. Introducción a la asignatura
                   1.1.1. Presentación de la asignatura
                           Planeación Didáctica de la asignatura (130717 bytes)
                           Manual de Prácticas SCD-1016 Lenguajes y Autómatas II (118878 bytes)
                          
          1.2. Diseña mediante el uso de reglas semánticas dirigidas por sintaxis, un analizador semántico para un compilador.
                   1.2.1. Detectar errores semánticos
                           Árboles (179846 bytes)
                          
                   1.2.2. Diseñar y seleccionar información sobre la construcción de un analizador semántico.
                           Análisis Semántico (198345 bytes)
                           http://arantxa.ii.uam.es/~alfonsec/docs/compila5.htm
                          
                   1.2.3. Reconocer el manejo de tipos en las expresiones y el uso de operadores.
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 288-302
                           Comprobación de Tipos (463326 bytes)
                           Ejemplos de Comprobación de Tipos (89235 bytes)
                          
                   1.2.4. Establecer las reglas para la conversión de tipos (casting) en expresiones.
                           Atributos en Análisis Semántico (499004 bytes)
                          
                   1.2.5. Agregar acciones semánticas a la estructura de la gramática.
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 355-360
                           Esquemas de Traducción (200559 bytes)
                          
                   1.2.6. Manipular la tabla de conversión de símbolos y de errores y direcciones.
                           Administración de la Tabla de Símbolos (124223 bytes)
                          
                   1.2.7. Integrar equipos de trabajo para la construcción de un analizador semántico.
                           Proceso Completo (163676 bytes)
                          
2. Generación de Código Intermedio
          2.1. Diseña las reglas para traducir el código fuente a un código intermedio.
                   2.1.1. Aplicar los tipos de notación para la conversión de expresiones: Infija, prefija y posfija.
                           Notaciones (33004 bytes)
                          
                   2.1.2. Representar expresiones mediante el código intermedio.
                           Infija (27136 bytes)
                          
                   2.1.3. Reconocer el manejo de tipos en las expresiones y el uso de operadores.
                           Posfija (24576 bytes)
                           Traducción de Infija a Postfija (210944 bytes)
                          
          2.2. Desarrollar y aplicar acciones para la gramática del lenguaje prototipo y en la generación de código intermedio
                   2.2.1. Desarrollar las acciones que representen la estructura de un lenguaje de programación de alto nivel en un código intermedio.
                           Notación Polaca (58880 bytes)
                          
                   2.2.2. Aplicar las acciones construidas a la gramática del lenguaje prototipo.
                           Código Intermedio (162356 bytes)
                          
                   2.2.3. Integrar equipos de trabajo para la generación de un código intermedio.
                           Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman; CompiladoresPrincipios, técnicas y herramientas; Addison Wesley Longman primera edición; pags 484-489
                          
3. Optimización
          3.1. Conoce e identifica los diferentes tipos de optimización que permita eficientar el código intermedio.
                   3.1.1. Aplicar las técnicas para la optimización del código intermedio generado.
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 610-612
                           Optimización (90377 bytes)
                          
                   3.1.2. Tener nociones algebraicas para estimar el número de veces que se realiza una instrucción dentro de un ciclo o ciclos anidadas.
                           Ciclos (76288 bytes)
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 678
                          
                   3.1.3. Conocer que recursos se consumen en invocación a funciones y expresiones simples
                          
                   3.1.4. Estudiar nuevas técnicas para la optimización de código, sobre todo aquellos lenguajes que requieren de una máquina virtual para su ejecución sobre multiplataformas
                          
                   3.1.5. Escribir un ensayo que establezca las tendencias y técnicas empleadas para éste propósito
                          
                   3.1.6. Conocer los criterios de tiempo de ejecución o extensión de código generado.
                          
                   3.1.7. Integrar equipos, para analizar códigos intermedios existentes y proponer algunas mejoras
                          
          3.2. Aplica técnicas para la optimización de código intermedio.
                   3.2.1. Conocer que recursos se consumen en invocación a funciones y expresiones simples.
                           http://prezi.com/m-ft53psccpy/321-costo-de-ejecucion-memoria-registros-pilas/
                          
                   3.2.2. Estudiar nuevas técnicas para la optimización de código, sobre todo para aquellos lenguajes que requieren de una máquina virtual para su ejecución sobre multiplataformas, escribir un ensayo sobre tendencias relacionadas a este propósito.
                           Manejo de Memoria en tiempo de ejecución (422057 bytes)
                          
                   3.2.3. Integrar equipos, para analizar códigos intermedios existentes y proponer algunas mejoras.
                           Optimización y Costos (86806 bytes)
                          
4. Generación de Código Objeto
          4.1. Utiliza un lenguaje de bajo nivel para traducir el código construido a lenguaje máquina para su ejecución.
                   4.1.1. Conocer la arquitectura de los microprocesadores intel y compatibles.
                           Aho, Alfred; Sethi, Ravi; Ullman, Jeffrey. Compiladores, Principios, Técnicas y herramientas. Addison - Wesley.1998. pags 538-540
                           Máquinas Virtuales (179389 bytes)
                          
                   4.1.2. Conocer la estructura y funcionamiento del lenguaje ensamblador.
                          
                   4.1.3. Conocer las características principales del lenguaje maquina a fin de llevar un código intermedio y este pueda ser reconocido por el hardware.
                          
                   4.1.4. Conocer las técnicas de administración de memoria para el almacenamiento de un programa en momento de ejecución
                          
                   4.1.5. Experimentar con simuladores de arquitectura de microprocesadores.
                          

Prácticas de Laboratorio (20232024P)
Fecha
Hora
Grupo
Aula
Práctica
Descripción

Cronogramas (20232024P)
Grupo Actividad Fecha Carrera

Temas para Segunda Reevaluación