UNIVERSIDAD RICARDO PALMA
FACULTAD DE INGENIERÍA
DEPARTAMENTO ACADEMICO DE INGENIERIA
ESCUELA ACADÉMICO PROFESIONAL DE INGENIERÍA DE INFORMÁTICA
SÍLABO 2008-1
PLAN DE ESTUDIOS 2000
I.
DATOS GENERALES
CURSO
CÓDIGO
CICLO
CRÉDITOS
CONDICIÓN
NATURALEZA
HORAS DE TEORÍA
HORAS TALLER
HORAS TOTALES
REQUISITOS
COORDINADOR
PROFESORES
II.
:
:
:
:
:
:
:
:
:
:
:
:
LENGUAJES Y COMPILADORES.
II 0812
VIII (Octavo).
03
Electivo
Teórico-practico-experimental.
2 Hrs.
3 Hrs.
5 Hrs.
II 0506 Estructura de Datos y Algorítmica II
Lizardo Silva Ubaldo
Lizardo Silva Ubaldo (Teoría - Laboratorio)
SUMILLA
La asignatura de Lenguajes y Compiladores es un curso desarrollado en forma
teórico-práctico-experimental, que describe los diferentes componentes de un
Compilador y los diferentes analizadores de un compilador, quedando capacitado
para desarrollar un compilador. Las unidades de aprendizaje son: Fundamentos del
Compilador, Analizador Léxico, Analizador Sintáctico, analizador Semántico,
Código Intermedio.
III. COMPETENCIAS DE LA CARRERA

Desarrolla y mantiene sistemas de software confiables y eficientes y que sea
económico desarrollarlos y mantenerlos y que satisfagan los requisitos
definidos por los clientes
IV. COMPETENCIAS DEL CURSO
Los alumnos estarán en la capacidad de conocer los componentes básicos de un
compilador y aplicarlos en el diseño y desarrollo del mismo. Los logros a alcanzar
son los siguientes:
 Capacitar al alumno en los conocimientos fundamentales de construcción de
Compiladores.





V.
Que el alumno esté en capacidad de diseñar y desarrollar un analizador
lexicográfico.
Que el alumno esté en capacidad de diseñar y desarrollar un analizador
Sintáctico
Que el alumno esté en capacidad de diseñar y desarrollar un analizador
Semántico.
Que el alumno esté en capacidad de diseñar y desarrollar un generador de código
intermedio
Que el alumno esté en capacidad para desarrollar un compilador.
RED DE APRENDIZAJE
Fundamentos del
Compilador
Forma parte
Analizador
Léxico
Forma parte
Forma parte
Analizador
Sintáctico
Analizador
Semántico
Genera
Genera
Código
Intermedio
genera
VI. UNIDADES DE APRENDIZAJE
UNIDAD 1 : Fundamentos del Compilador
Logro de la unidad: Capacitar al alumno en los conocimientos fundamentales de
construcción de Compiladores.
Semana
1,2
Sesión / Tema
Arquitectura de un compilador
 Compiladores: clases y estructura básica.
 Fases del Compilador Análisis lexicográfico
(scanner), análisis sintáctico (parser), análisis
semántico, generación de código intermedio,
generación de código objeto, tratamiento y
recuperación de errores, administración de la
tabla de símbolos.
Actividades
 Exposición
del
profesor
 Programas básicos
usando cadenas de
caracteres.
2,3
Aspectos Formales.
 Sistemas y Gramáticas Formales: alfabeto,
lenguajes, símbolos terminales y no terminales.
 Jerarquía de lenguajes,
 Forma Normal de Backus (BNF).
 Exposición
del
profesor
 Programas básicos
usando cadenas de
caracteres
UNIDAD 2: Analizador Lexicográfico
Logro de la unidad: Diseña y desarrolla un analizador lexicográfico.
Semana
3, 4
5
Sesión / Tema
Análisis Léxico
 Funciones y reconocimiento de tokens.
 Especificación
de
los
componentes
lexicográficos.
 Gramáticas regulares.
 Tratamiento y recuperación de errores
lexicográficos.
 Autómatas finitos.
Tabla de Símbolos.
 Estructura, organización, primitivas de acceso.
Actividades
 Exposición
del
profesor
 Programación de un
analizador
lexicográfico
 Practica
de
Laboratorio 1
 Practica de Teoría 1
 Exposición
del
profesor
 Programación de una
tabla de símbolos
UNIDAD 3: Analizador Sintáctico
Logro de la unidad: Diseña y desarrolla un analizador Sintáctico.
Semana
6, 7
8
9, 10
Sesión / Tema
Análisis Sintáctico.
 Métodos de análisis sintáctico: descendente y
ascendente
 Tipos de parser.
EXAMEN PARCIAL
Análisis Sintáctico dirigido por tablas
 Gramáticas LL(1).
 Método de parser descendente.
 Algoritmos para generar la tabla del parser.
Actividades
 Exposición
del
profesor
 Programación de un
analizador sintáctico
 Practica
de
Laboratorio 2
 Practica de Teoría 2
 Exposición
del
profesor
 Programación de una
tabla de símbolos
UNIDAD 4: Analizador Semántico
Logro de la unidad: Diseña y desarrolla un analizador Semántico.
Semana
11
12
Sesión / Tema
Manejo de Errores.
 Tipos de errores.
 Recuperación de errores
Análisis Semántico.
 Funciones
del
Analizador
Comprobación de tipos.
semántico.
Actividades
 Exposición
del
profesor
 Desarrollo
del
Proyecto
 Exposición
del
profesor
 Desarrollo
del
Proyecto
 Practica
de
Laboratorio 3
 Practica de Teoría 3
UNIDAD 5: Generador de código intermedio
Logro de la unidad: Diferenciar un programa escrito en código intermedio. Generar un
programa usando código intermedio
Semana
13
14
15
16
17
Sesión / Tema
Código Intermedio
Generación de código
 Código Objeto.
 Asignación de memoria.
Actividades
 Exposición
profesor
 Desarrollo
Proyecto
 Exposición
profesor
 Desarrollo
Proyecto
del
del
del
del
Exposición de Proyectos
EXAMEN FINAL
EXAMEN SUSTITUTORIO
VII. METODOLOGIA
 Las clases de la parte teórica se desarrollarán en aula presentando las principales
técnicas aplicadas a cada una de las fases del diseño de compiladores. Además,
se combinarán con lecturas obligatorias compuestas por artículos o capítulos de
libros que se discutirán en clase, por lo que éstos deben ser leídos antes de clase.
Las clases de práctica servirá para discutir los aspectos del desarrollo del
proyecto
 Las clases de laboratorio, empieza recordando la sintaxis y semántica de un
Lenguaje de Programación. Para el desarrollo de software de base, los alumnos
pueden usar el C#.
VIII. EVALUACION
Concepto
Examen Parcial Teoría
Porcentaje
25%
Compuesto
100% Examen Parcial.
Examen Final Teoría
25%
100% Examen Final.
Promedio de Prácticas de
Teoría
20%


Promedio de Laboratorio
30%


40% Proyecto
60% Promedio de
Evaluaciones
40% Proyecto.
60% Promedio de
Evaluaciones
Fórmula de evaluación
Promedio Final = 0.25*PAR1 + 0.25*FIN1 +
0.30*(0.20*LAB1+0.20*LAB2+0.20*LAB3+0.40*PYL1) +
0.20*(0.20*PRA1+0.20*PRA2+0.20*PRA3+0.40*IFP1)
PAR :
FIN :
PRA :
LAB :
PYL :
IFP :
Examen parcial
Examen final
Practicas calificadas de Teoría
Practicas de laboratorio
Promedio Proyecto
Informe de Teoría
IX. Referencias Bibliográficas (bibliografías, sitios web,revistas y otras fuentes de
información)
 Compiladores Conceptos fundamentales.
Teufel & Schmidt & Teufel. Addison-Wesley, 1996.
 Compiladores, Principios, Técnicas y Herramientas
Alfred Aho & Ravi Sethi & Jeffrey Ullman. Addison-Wesley, 1990.
 Teoría de Autómatas y Lenguajes Formales.
Kelley Dean,. Prentice Hall, 1995
 Compiladores I – Una Introducción a la Fase de Análisis
E. Vivancos, L. Moreno, V. Gisbert
 Lenguajes de Programación Diseño e Implementación
Pratt Terrence & Zelkowitz Marvin. Prentice Hall 1998.
 Matemática Discreta y lógica.
Grassmann Winfried Karl, Tremblay Jean-Paul. Prentice Hall 1997.
Programa Calendarizado de Lenguajes y Compiladores
Ciclo 2008- 1
Semana
Teoría
1
Arquitectura de un
compilador
2
Arquitectura de un
compilador.
Aspectos Formales.
3
Aspectos Formales.
Análisis Léxico
4
Análisis Léxico.
19-Abr
Evaluación 1
5
Análisis Léxico
6
Tabla de Símbolos.
Análisis Sintáctico.
7
Análisis Sintáctico.
10-May Evaluación 2
8
9
10
11
Análisis Sintáctico
dirigido por tablas
Análisis Sintáctico
dirigido por tablas
Manejo de Errores.
Análisis Semántico.
07-Jun Evaluación 3
12
Análisis Semántico.
13
Código Intermedio
14
Generación de código.
Evaluación 4
28-Jun
15
Sustentación del
proyecto
16
Laboratorio ( 3 horas )
Proyecto
Ejercicios y Programas con Definir el lenguaje
clases en C#
Programas con cadenas de Definir el lenguaje
caracteres
Construcción de Programas
de Análisis Léxico
Construcción de Programas
de Análisis Léxico
Evaluación 1
Construcción de Programas
de Análisis Léxico
Diseño e implementación
del scanner
Modelo de arquitectura del
proyecto
Generación del código
Intermedio
Aspectos avanzados:
desarrollo del intérprete.
Evaluación 4
Sustentación del proyecto
Generación de código
intermedio
Intérprete
Diseño e implementación
del scanner
Tabla de símbolos
Implementación de la Tabla Entrega de Informe 1-Teoría
de símbolos
(Definición del Lenguaje y
Analizador Léxico).
Construcción de Programas  Entrega de Informe 1de Análisis Sintáctico.
Lab. (Implementación
Evaluación 2
del Analizador Léxico y
Tabla de Símbolos)
 Diseño e implantación
del parser
Examen Parcial
Construcción de Programas Diseño e implantación del
de Análisis Sintáctico.
parser
Construcción de Programas
de Análisis Sintáctico.
Entrega de informe 2.
Manejo de Errores
(Teoría y Lab) Sintáctico
Aspectos avanzados:
Diseño e implantación del
Desarrollo del Analizador parser.
Semántico
Evaluación 3
Aspectos avanzados:
Análisis semántico
Desarrollo del Analizador Entrega de Informe 3.
Semántico
(Teoría y Lab) Semántico
Examen Final
Entrega de Informe Final
Descargar

Evaluación 1 - Cybertesis URP