UNIVERSIDAD AUTÓNOMA DE QUITO
    
Facultad 
 SISTEMAS E INFORMÁTICA 
Escuela 
 INGENIERÍA DE SISTEMAS INFORMÁTICOS 
Asignatura 
 COMPILADORES E INTÉRPRETES 
Código 
 01/023 
Semestre 
 SÉPTIMO 
Pre requisitos 
 DESARROLLO DE SOFTWARE CORPORATIVO 
Créditos 
 8 
Carga Horaria 
 6 / SEMANA 
Profesor 
 RICARDO BLADIMIR ORTEGA ORTEGA 
Correo Electrónico 
 ricardo@ortega.as 
Caracterización de la asignatura 
 
Conceptualización e ImportanciaPermite conocer los fundamentos, técnicas y herramientas de los lenguajes de programación, los compiladores e intérpretes, desde el análisis lexicográfico, la teoría de autómatas, el análisis sintáctico, la forma de estructurar, generar y optimizar código y ejercicios para construir un lenguaje.
Contribución al perfil profesionalCapacita al profesional para identificar los componentes de los lenguajes en que se programan los computadores y le permitirá crear de mejor manera nuevos lenguajes mejorados, evolucionados o a la medida de sus necesidades.
Visión Global del programaComprende un estudio de los lenguajes de programación, las diferencias entre compiladores, intérpretes y scripts, las teorías de lenguajes formales y autómatas, el análisis del código fuente lexicográfico y sintáctico, la traducción, generación y optimización de código en sus diferentes formatos, con ejercicios reales.
ObjetivosConocer y comprender los traductores, compiladores e intérpretes mediante una base teórica y ejercicios practicos de programación. Conocer la teoría de lenguajes formales y autómatas para comprender el funcionamiento de los traductores. Familiarizarse con los procesos de análisis lexicográfico y sintáctico. Comprender los procesos de traducción, generación y optimización de código objeto. Usar herramientas de software y programación para la creación y pruebas de un traductor.
Estrategias DidácticasDependiendo del tema y del avance de la materia se usarán las siguientes estrategias a nivel de grupo o a nivel individual: clases magistrales, exposiciones, proyecciones, estudio de casos prácticos, prácticas en laboratorio, deberes, consultas, investigaciones en internet, desarrollo de traductor por fases.
Técnicas InstruccionalesSe usarán técnicas como estimulación verbal, estimulación escrita, desarrollo de hábitos de programación, desarrollo de ejercicios.
 
Bibliografía y Referencias Internet 
 
AHO Alfred, Compiladores, principios, técnicas y herramientas, Addison Wesley
Glenn J. Teoría de la Computación, lenguajes formales, Autómatas y complejidad, Addison Wesley
http://www.rpmfind.net
http://www.php.net
http://www.programmers-source-code.com
 
Sistema de Evaluación 
 
ComponenteBimestre 1Bimestre 2Bimestre 3
  Exámenes    40%    40%    40%  
  Ejercicios    10%    0%    10%  
  Deberes    0%    10%    0%  
  Consultas    10%    10%    10%  
  Prácticas y Laboratorios    20%    20%    0%  
  Pruebas, Lecciones y Evaluaciones    20%    20%    10%  
  Proyectos    0%    0%    30%  
 


Nota: La duración de cada hora de clase es de 55 minutos

Horario de Clases 
 
DíaInicioFinalizaciónDuraciónAulaLaboratorio
  Lunes    20:10    22:00    1:50          
  Martes    20:10    22:00    1:50          
  Sábado    07:00    08:50    1:50          
 

Programa Analítico 
 
CapTemaSubtemaHorasMinutosSemanas
IINTRODUCCIÓN 1.1 Breve Historia63301.00
1.2 Lenguajes
1.3 Herramientas
IITRADUCTORES, COMPILADORES E INTÉRPRETES 2.1 Los Lenguajes de Programación126602.00
2.2 Clasificación
2.3 Compiladores vs. Intérpretes
2.4 Tipos de programas
2.5 Tipos de compiladores
2.6 Tipos de intérpretes
2.7 Fases de traducción
2.8 Ejercicios
IIIANÁLISIS LEXICOGRÁFICO 3.1 Función del analizador léxico201,1003.33
3.2 Componentes léxicos (tokens)
3.3 Expresiones regulares
3.4 Reglas que definen expresiones regulares
3.5 Propiedades de las expresiones regulares
3.6 Definiciones regulares
3.7 Ejercicios
IVTEORÍA DE AUTÓMATAS 4.1 Máquinas de estado finito FSM201,1003.33
4.2 FSM para reconocer tokens
4.3 FSM no deterministico
4.4 FSM determinístico vs FSM no determinístico
4.5 FSM óptimas
4.6 FSM Push Down
4.7 Ejercicios
VANALIZADORES SINTÁCTICOS 5.1 Características126602.00
5.2 Métodos de parsing
5.3 Clasificación de Chomosky (gramáticas)
5.4 Gramáticas no restringidas
5.5 Gramáticas de contexto sensitivo
5.6 Gramáticas de contexto libre
5.7 Gramáticas regulares
5.8 Ejercicios
VITRADUCCIÓN Y GENERACIÓN DE CÓDIGO 6.1 Procesamiento de declaraciones y atributos158252.50
6.2 Procesamiento de expresiones
6.3 Análisis de tipos de datos
6.4 Sentencias
6.5 Ejercicios
VIIOPTIMIZACIÓN Y GENERACIÓN DE CÓDIGO 7.1 El Proceso de optimización158252.50
7.2 Tipos de optimización
7.3 Ámbito de optimización
7.4 Generación de código
7.5 Ejercicios
VIIIDEPURADORES, MAPAS E IDES 8.1 Más allá del programa ejecutable126602.00
8.2 Depuradores
8.3 Símbolos, mapas y referencias
8.4 Entornos integrados
8.5 Conclusiones
IXExámenes y evaluaciones 9.1 Exámenes, pruebas y revisión84401.33
Total1206,60020.00