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
|
Competencias Específicas
|
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 ![]() ![]() 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 ![]() 1.2.2. Diseñar y seleccionar información sobre la construcción de un analizador semántico. ![]() ![]() 1.2.3. Reconocer el manejo de tipos en las expresiones y el uso de operadores. ![]() ![]() ![]() 1.2.4. Establecer las reglas para la conversión de tipos (casting) en expresiones. ![]() 1.2.5. Agregar acciones semánticas a la estructura de la gramática. ![]() ![]() 1.2.6. Manipular la tabla de conversión de símbolos y de errores y direcciones. ![]() 1.2.7. Integrar equipos de trabajo para la construcción de un analizador semántico. ![]() |
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. ![]() 2.1.2. Representar expresiones mediante el código intermedio. ![]() 2.1.3. Reconocer el manejo de tipos en las expresiones y el uso de operadores. ![]() ![]() 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. ![]() 2.2.2. Aplicar las acciones construidas a la gramática del lenguaje prototipo. ![]() 2.2.3. Integrar equipos de trabajo para la generación de un código intermedio. ![]() |
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. ![]() ![]() 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. ![]() ![]() 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. ![]() 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. ![]() 3.2.3. Integrar equipos, para analizar códigos intermedios existentes y proponer algunas mejoras. ![]() |
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. ![]() ![]() 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 |