Favor visitar
esta página en forma diaria.
Diciembre 16:
Estimados Estudiantes de CI-2700:
La notas finales han sido reportadas al Registro.
El promedio en el examen final fue 82.5, y en el curso
el promedio fue 86.6. Las notas aparecen en la puerta
de mi oficina, 238.
El examen final fue largo, pero solo así, con ejemplos
hechos en todo detalle, realmente se aprende acerca de las
técnicas LL y LR. El ejemplo de números romanos ilustra
cómo se puede adaptar la tecnología de construcción de
compiladores, para construir rápida y eficientemente un
traductor de propósito específico.
El proyecto fue largo y consumió muchas horas, pero
experimentaron en detalle la operación interna de un
compilador. Esta no es una habilidad directamente
comerciable, pero le cambia a uno la perspectiva acerca
de los lenguajes de programación (o al menos eso me hizo a mí).
Les dí un curso de calibre competitivo a nivel mundial,
y estoy muy complacido con los resultados, porque Uds.
dieron la talla en forma excelente.
Si alguno de Uds. quisiera en el futuro una carta de
recomendación, con muchísimo gusto se las doy.
Que pasen una muy Feliz Navidad y Año Nuevo, y muchos
éxitos en sus vidas profesionales.
Dr. Manuel E. Bermudez
Fulbright Scholar
Universidad de Costa Rica
Diciembre 8:
Veo que algunos de Uds. están teniendo problemas con el Proyecto 4,
de modo que voy a postergar la fecha límite para el
miércoles 10 de diciembre, a las 11:59 p.m.
Solo dos me han enviado preguntas. El problema principal parece
ser la contabilidad de FrameSize. Esto no es difícill
de verificar. Aquí va un párrafo al respecto:
-------------------------------
1. Examinas con cuidado el archivo _CGEN, que documenta, paso
a paso, le generación del código, conforme se visita cada nodo,
incluyendo todo cambio a FrameSize. Verifica que cada vez que
aparece "Opening Frame" se contabilizan correctamente los espacios
para el valor de retorno, parámetros, y variables locales. Por ejemplo,
para la función ColorValue en pr4.c11, se comienza a generar código para
la instrucción "case" (el principio del cuerpo de la función), con FS=2
(valor de retorno y el parámetro c).
2. Luego, al cerrar esa misma función (la siguiente ocurrencia de
"Closing Frame" en _CGEN), verifica que el valor de FrameSize
regresó a l valor inicial, es decir, efecto total neto de cero por
parte del cuerpo de la función. En el caso de pr4.c11,
al cerrar la función ColorValue, FrameSize debiera ser 2.
Si no lo es, entonces hay que ver el proceso de generación de
código dentro de la función (y los incrementos y decrementos de
FS correspondientes). En general, FS debe ser exacto en todo momento.
Si no lo es, y occurre un llamado a una rutina, el valor de
"n" en cualquier instrucción "CALL n" estará mal, la instrucción
"CALL n" hará que se trasladé el LBR la distancia incorrecta, y
simplemente, se acaba el mundo.
Diciembre 4, 12 mediodía:
Aquí está el EXAMEN FINAL .
Favor entregarlo POR CORREO ELECTRÓNICO, a más tardar viernes 5
de diciembre, 6 p.m.
Diciembre 2:
Anoche me visitó un ángel, y me dijo que si yo insisto,
por tercera vez este semestre, en administrar un examen
en clase, a libro cerrado, difícil de completar en dos
horas, ese mismo ángel se encargaría de agregarle mil
años a mi futura estancia en el purgatorio.
Debido a esto, el examen será para llevar a la casa.
Lo pondré en la página de anuncios del curso el jueves
4 a mediodía, y tendrán tiempo hasta el viernes 5 a las
6 p.m. para entregármelo.
Si Ud. tiene algún problema con esta nueva situación
con el examen final, favor comunicarse con
angel@purgatorio.com
o bien conmigo para ver qué hacemos.
P.D. La memoria la tengo un poco difusa, pero el ángel
me recordó a un estudiante a quien, sin querer,
le di un golpe en la cara el último día de clases.
Noviembre 20: La fecha límite para entregar el Proyecto 4 es el lunes 8 de diciembre, as la 11:59 p.m.
Noviembre 20: El examen final del curso será el jueves 4 de diciembre, de 2 a 4 pm., en el Aula 303.
Noviembre 17: Por motivo de viaje estaré ausente de clases el día lunes 24 de noviembre. Favor utilizar este tiempo para trabajar en su Proyecto 4, y estudiar el material de Análisis Sintáctico para el examen final.
Noviembre 10: Solución al Examen Parcial 2
Octubre 29: RECORDATORIO: El segundo examen parcial será el lunes 3 de noviembre, en horas de clase. El material consta de lo cubierto en clase hasta el día 23 de octubre.
Octubre 29: Error en la presentación de Expresiones Regulares, filmina 34: la flecha sobre "b" va de 3467891 a 346789, y no al revés. Gracias a Paúl Fernandez por encontrar el error.
Octubre 20: Por motivo de viaje estaré ausente de clases el día lunes 27 de octubre. Favor utilizar este tiempo para terminar su Proyecto 3, y estudiar para el segundo examen parcial.
Octubre 20: La fecha de entrega del Proyecto 3 se ha pospuesto para el 31 de octubre, a las 11:59 p.m.
Octubre 20: El segundo examen parcial será el lunes 3 de noviembre, en horas de clase. El material consta de lo cubierto en clase hasta el día 23 de octubre.
Octubre 15: Seis de los programas de prueba del Proyecto 3 tienen descripciones incorrectas de los resultados esperados: pr3.c03, pr3.c24, pr3.e04, pr3.e13, pr3.e18, y pr3.e27. Las versiones correctas aparecen en programs-nuevos-pr3.tar
Octubre 6: Solución al Examen Parcial 1
Setiembre 29: Versión nueva de "Expresiones Regulares", en la página de Apuntes.
Setiembre 29: Versión corregida de "Lenguajes Regulares", en la página de Apuntes.
Setiembre 25: El Proyecto 3 ha sido asignado. Aparece en la página de Proyectos. Fecha de entrega: Lunes 27 de octubre, 11:59 P.M.
Setiembre 21: Versión corregida de "Introducción a la Teoría de Lenguajes", en la página de Apuntes.
Setiembre 21: Fecha de Examen parcial 1: jueves 2 de octubre, en horas de clases.
Setiembre 18: Un detalle adicional del Proyecto 2: los cambios necesarios en Constrainer.c para AssignNode, también son necesarios para SwapNode. Ninguna de las dos variables puede ser la vcl para ningún "for" que contiene al "swap".
Setiembre 4: El Proyecto 2 ha sido asignado. Aparece en la página de Proyectos. Fecha de entrega: Lunes 29 de setiembre, 11:59 P.M.
Setiembre 3: He cambiado mis horas de consulta: L,J: 3:00-5:00 p.m.
Agosto 24: La fecha límite del Proyecto 1 ha sido prorrogada, hasta el jueves, 4 de setiembre.
Agosto 24: El Proyecto 1 ha sido asignado. Aparece en la página de Proyectos. Fecha de entrega: Lunes 1 de setiembre, 11:59 P.M.
Agosto 24: Se han consolidado los proyectos 0 y 1 en uno solo: el proyecto 1. Habrá 4 proyectos, con valor de 10% cada uno, en lugar de cinco proyectos con 8% cada uno.
Agosto 20: Nueva versión del Resumen de Compilación, con animaciones. Ver la página de Apuntes.
Agosto 20: La Carta al Estudiante está en la página de Contenido.
Agosto 20: El sistema TWS (con instrucciones para su instalación) está en la página de Apuntes.
Agosto 20: Horas de consulta definidas: L,J: 13:30-15:00.
Agosto 11: La página funciona !