Академический Документы
Профессиональный Документы
Культура Документы
Academia
Lenguajes Informáticos
1. Nombre de la Materia 2. Clave de la Materia
Compiladores CC317
o
3. Prerrequisitos 4. Seriación 5. Carga Horaria 6. Créditos
ad
CC206 Teoría: Práctica: Total:
Ninguna 11
CC209 80 0 80
7. Área de Formación 8.División 9. Departamento 10. Academia
iz
Departamento de Ciencias y
r
Especializante Ingenierías Tecnologías de la Lenguajes Informáticos
to 12. Modalidad de
Información y Comunicación
Au
11. Carrera 13. Tipo de Asignatura
Asignatura
Licenciatura
Página 1 de 12
Academia de Lenguajes Informáticos
División de Ingenierías
15. Presentación
El presente curso, permitirá a los alumnos ser capaces de diseñar un compilador a través de un lenguaje de programación, así
como la creación de intérpretes de lenguaje.
16. Perfil formativo del estudiante
Aptitud:
Habilidad y capacidad en la resolución de problemas reales e implementación de las herramientas informáticas que existe para
o
lograr el objetivo y disponibilidad para ejercer ciertas tareas minimizando tiempo y esfuerzo, logrando con esto las condiciones
ad
idóneas para realizar actividades dependiendo el área laboral.
Actitud:
iz
El alumno debe tener disponibilidad para captar e implementar los conocimientos adquiridos en ejemplos reales, además de que se
requiere que el alumno cuente con una conducta positiva y constructiva para la adquisición de conocimientos que le ayuden con
r
métodos tecnológicos para obtener la información de manera veraz y oportuna.
Valores: to
Au
Se intenta desarrollar valores como puntualidad, responsabilidad rainculca la puntialidad,pretende que el alumno al finalizar el
curso, le permita manifestar su identidad en relación a sus nuevos conocimientos tanto en su trayecto escolar con su delación con el
exterior.
Conocimiento:
Este curso tiene como objetivo principal el llevar a cabo un proceso de retroalimentación para adquirir los conocimientos necesarios
a través de dinámicas de evaluación para reafirmar y estimular al alumno.
Página 2 de 12
Academia de Lenguajes Informáticos
División de Ingenierías
Capacidades:
El alumno tendrá la capacidad de poder resolver un problema, así como también mejorar los procesos en tiempo y forma para
realizarlo dependiendo de las circunstancias en que se presente.
Habilidades:
El alumno tendrá la disposición para realizar tareas relacionadas con el área de Procesamiento de la Información, basándose en
una adecuada percepción de los estímulos externos y una respuesta activa que redunde en una actuación eficaz, es decir, contara
con el potencial para adquirir y manejar nuevos conocimientos y destrezas.
o
Adquirirá el conocimiento teórico práctico para la utilización de Lenguajes y autómatas, desarrollará habilidades y actitudes que le
ad
permiten identificar problemas y oportunidades donde se aplique el tratamiento de información para proponer soluciones por medio
de modelos y facilitar con ello la toma de decisiones. Desarrollará y administrara sistemas de información para aumentar la
iz
productividad y competitividad de las organizaciones.
r
Objetivos Éticos y Sociales
a)
to
Trabajar individualmente (Responsabilidad y puntualidad)
Au
b) Valorar objetivamente el trabajo y opiniones de sus compañeros (Respeto)
c) Resolver exámenes individualmente (Honestidad)
d) Valorar el método de la ciencia como un camino que nos conduce a la verdad (Valorar la verdad)
e) Auto motivarse para administrar su propio tiempo y cumplir con las tareas que se le asignen en el curso (Entusiasmo y
responsabilidad)
f) Apreciar la cultura
g) Criticar y ser criticado en forma constructiva (Respeto)
h) Valorar el trabajo en equipo para su fortalecimiento (Integración en equipo)
Página 3 de 12
Academia de Lenguajes Informáticos
División de Ingenierías
17. Objetivos
Objetivo General
El alumno comprenderá qué es y cómo funciona un compilador. Adquirirá la capacidad para diseñar un compilador funcional
completo para un lenguaje especificado al comenzar el curso.
Objetivos Particulares
o
• El alumno comprenderá el funcionamiento genérico de un compilador
• El alumno realizará un reconocedor léxico en base a las gramáticas de tipo 3 y los autómatas finitos
ad
• El alumno realizará un rastreador o ‘parser’ con base en las dos filosofías básicas en el análisis sintáctico
• El alumno aplicará los conceptos de estructura de datos al diseño de una tabla de símbolos práctica y eficiente.
• El alumno aprenderá a hacer las diferentes validaciones necesarias para la detección de construcciones gramaticales
correctas pero con un significado erróneo o contradictorio.
iz
• El alumno comprenderá los mecanismos de generación de código dirigido por la sintaxis del lenguaje propuesto. A su vez,
analizará el impacto que tiene la arquitectura de un procesador sobre la generación de código objeto.
• El alumno aprenderá los diferentes esquemas de la gestión de errores.
r
to 18. Contenidos Temáticos
Au
Contenido Temático Sintético
I.-Descripción general de un compilador.
II.-Analizador Léxico.
III.-Analizador sintáctico.
IV.-Tabla de símbolos.
V.-Análisis semántico.
VI.-Generación de código y optimizaciones del compilador.
VII.-Recuperación de errores.
Página 4 de 12
Academia de Lenguajes Informáticos
División de Ingenierías
o
Unidad I:
Objetivo: El alumno comprenderá el funcionamiento genérico de un compilador
ad
Descripción General de un Compilador
1.1.- Funciones Principales
1.2.-Estructura Interna
1.3.- Pasos y Fases de la Compilación y de la Interpretación.
iz
Unidad II:
Objetivo: El alumno realizará un reconocedor léxico en base a las gramáticas de tipo 3 y los autómatas finitos
r
Analizador Léxico
to
2.1.-Lenguajes y Expresiones Regulares.
2.2.-Analizador Lexicográfico con autómatas Finitos.
2.3.-Diseño de un Analizador Léxico.
Au
Unidad III:
Objetivo: El alumno realizará un rastreador o ‘parser’ con base en las dos filosofías básicas en el análisis sintáctico
Analizador Sintáctico
3.1.-Gramáticas independientes de contexto.
3.2.-Autómata de pila.
3.3.-Analizadores Sintácticos descendentes.
3.4.-Analizadores Sintácticos ascendentes.
3.5.-Diseño de un Analizador de descenso recursivo
Unidad IV:
Página 5 de 12
Academia de Lenguajes Informáticos
División de Ingenierías
Objetivo: El alumno aplicará los conceptos de estructura de datos al diseño de una tabla de símbolos práctica y eficiente.
Tabla de Símbolos:
4.1.-Esquemas de la Tabla de Símbolos.
42.-Arreglos Secuenciales.
4.3.-Arreglos de Acceso por Dispersión.
4.4.-Estructuras Avanzadas.
Unidad V:
Objetivo: El alumno aprenderá a hacer las diferentes validaciones necesarias para la detección de construcciones gramaticales
correctas pero con un significado erróneo o contradictorio.
Análisis Semántico
5.1.-Verificación de Tipos.
o
5.2.-Verificación de Unicidad.
5.3.-Verificación de Flujo.
ad
5.4.-Verificación en Usos de Símbolos.
Unidad VI:
Objetivo: El alumno comprenderá los mecanismos de generación de código dirigido por la sintaxis del lenguaje propuesto. A su
iz
vez, analizará el impacto que tiene la arquitectura de un procesador sobre la generación de código objeto.
Generación de Código y Optimización del Compilador
6.1.-Còdigo intermedio.
r
6.2.-Código Objeto.
to
6.3.-Optimización Local.
Unidad VII:
Au
Objetivo: El alumno aprenderá los diferentes esquemas de la gestión de errores.
Recuperación de Errores
7.1.-Gestión de Errores en Tiempo de Compilación.
7.2.-Gestión de errores durante la ligadura de módulos objeto.
7.3.-Método de recuperación de Errores.
Página 6 de 12
Academia de Lenguajes Informáticos
División de Ingenierías
19. Bibliografía
o
ad
ISBN Título / Edición Autor(es) Editorial Edición Clasificación en
biblioteca CuC
Compiladores.
iz
Principios, Técnicas y Alfred V. Aho, Ravi Addison- Wesley / Pearson 1990
Herramientas Sethi, Jeffrey D. Ullman
r
Construcción de Kenneth C. Louden Thomson
Compiladores 2004
to
21 st Century Compilers Alfred V. Aho, Ravi
Sethi, Jefrey D. Ullman,
Monica Lann
Addison - Wesley
2004
Au
Página 7 de 12
Academia de Lenguajes Informáticos
División de Ingenierías
El contenido de este curso está orientado para que el alumno tenga el conocimiento necesario en la teoría para el diseño de un
compilador de lenguaje. También desarrollará habilidades y actitudes para la identificación de problemas y buscar soluciones
posibles a través de gramáticas, interpretes y autómatas finitos y facilitar con ello la construcción de un compilador funcional
completo.
o
Ing. Anzony Herrera Martínez
ad
22. Perfil del profesor
El profesor que imparta esta materia debe tener la formación en la disciplina de Ingeniería en Sistemas Computacionales,
Licenciatura en Informática, Ingeniería en Computación O licenciatura en Sistemas de Información
iz
23. Proceso de Enseñanza-aprendizaje
r
Métodos de Enseñanza-aprendizaje:
Aulas, talleres
Actividades de aprendizaje:
Resolución de ejercicios, técnicas de lectura, Exposiciones presenciales
Página 8 de 12
Academia de Lenguajes Informáticos
División de Ingenierías
o
No Tradicionales * No Tecnológicos
ad
1 Pintarrón 1 Plataforma LSM Dokeos para la distribución y recepción de trabajos,
tareas, foros, blogs, exámenes en línea y encuestas.
2 Marcadores
3 Aula de Clases
iz
4 Libros de texto
5 Diapositivas electrónicas
Equipo de Proyección
r
(cañón)
6
to
Notas elaboradas para el
curso.
Au
*Recurso usados en el método expositivo
Asistencias a Seminarios, Asistencia a conferencias relacionadas con temas de la materia o similitudes, participaciones en
congresos relacionados con la materia o la carrera, Visitas a empresas o laboratorios externos.
o
Para la realización de la evaluación del curso de la Materia de Compiladores, se sugiere que se realicen diversos ejercicios.
También se deberán dejar tareas de investigación sobre los contenidos temáticos que se vayan desarrollando en cada sesión para
ad
completar la evaluación, de tal forma que se evaluara de la siguiente manera:
iz
• Tareas ……………………………………………………………..… 20%
LOS RUBROS A TOMAR EN CUENTA PARA LA CALIFICACIÓN DE LAS TAREAS ES COMO SIGUE:
r
ü
ü
ü to
Contenido ………………………………………………………
Presentación y formato (Incluye buena redacción) ……….
Fuentes consultadas…………………………………………..
5%
5%
5%
Au
ü Puntualidad de la entrega ……………………………………. 5%
Página 10 de 12
Academia de Lenguajes Informáticos
División de Ingenierías
La evaluación curricular de la asignatura de Compiladores, deberá realizarse semestralmente, con el objeto de ir incorporando las
novedades y avances en aspectos tecnológicos y las instancias a participar son:
1) Colegio Departamental
2) Academia de Lenguajes de programación
3) Profesores de la materia de Bases de datos.
28. Mapa curricular
Ingeniería en Computación
http://www.cuc.udg.mx/oferta_acade/licenciaturas/ing_comp/index.html
Ingeniería Civil
o
http://www.cuc.udg.mx/oferta_acade/licenciaturas/ing_civil/index.html
ad
29. Participantes y fechas en la elaboración y revisión del programa
iz
Ing. Anzony Herrera Martínez Julio del 2009
Participantes en la revisión del programa Fechas de la revisión
r
M.C. Octavio Reynaga Fernández
Ing. Javier Joya Lomelí
to Julio del 2009
Au
Página 11 de 12
Academia de Lenguajes Informáticos
División de Ingenierías
_______________________________ __________________________
M.C. Octavio Reynaga Fernández Mtro. Miguel Lizcano Sánchez Jefe del
o
Presidente de la Academia Departamento de Ciencias y Tecnologías
de la Información y Comunicación
ad
iz
__________________________
r
Dr. Jorge Téllez López
Director de la División de
to Ingenierías
Au
Página 12 de 12
Academia de Lenguajes Informáticos