CC72Q

Anuncio
CC72Q Tópicos Avanzados en Lenguajes de Programación
(05 UD)
Semestre Primavera 2005
Profesor: Eric Tanter
Requisitos : CC41A / Autor
Objetivos
Este curso se centra en la orientación a objetos (OOP) y su recién extensión, la
programación por aspectos (AOP). El objetivo fundamental es entregar una
visión clara del paradigma de OOP y de los conceptos fundamentales que
llevaron a la aparición de AOP, pasando por los temas de metaprogramación y
arquitecturas reflexivas. Este curso plantea el contexto y la evolución de las
ideas en el área que se encuentra al limite entre lenguajes de programación e
ingeniería de software. Además provee una visión “de adentro” de los lenguajes
a través del estudio de sus intérpretes, incluyendo la problemática de la
compilación a tiempo (JIT compilers).
En este curso participará Marcus Denker (University of Berne, Switzerland),
quien está involucrado en el proyecto open source Squeak desde 1998, ha
trabajado con Alan Kay (inventor de Smalltalk entre otras cosas) y es
especialista en compiladores JIT.
Temario
• OOP
•Familiarización con Smalltalk y Squeak
•Interpretación de lenguajes OO
•Squeak avanzado (M. Denker)
•Compilación JIT (M. Denker)
• Metaprogramación y reflexión
•Conceptos y evolución
•Meta-arquitecturas de Smalltalk y Java
• Programación por aspectos
REFERENCIAS
•
•
•
•
Conceptos
Interpretación de lenguajes por aspectos
Herramientas actuales
Desafíos
Sistema de Evaluación
La evaluación incluirá:
• Presentación de un artículo leído
• Redacción (en grupo) de un ensayo comparativo/crítico
• Diseño, implementación y reporte de un pequeño proyecto (por definir al final
del curso).
Calendario
El semestre 2005/2 tiene 15 semanas (del 25 de Julio al 19 de Noviembre, sin
contar la semana del 12 al 17 de Septiembre). Con 1,5 horas semanales para
un curso de 5 UD, totalizan 22,5 horas.
El curso empezará la semana del 19 de Septiembre, lo cual deja 9 semanas de
clases. Para cumplir con el total de horas de un curso de 5 UD, el curso contará
con 2 clases de 1,5h semanales durante 6 semanas, y una sola clase semanal
durante las otras 3 semanas (6 * 3 + 3 * 1, 5 = 22, 5). Las semanas “livianas”
serán determinadas durante el curso.
Bibliografía
[1]
Tzilla Elrad, Robert E. Filman, and Atef Bader.
Aspect-oriented
programming. Communications of the ACM, 44(10), October 2001.
[2]
Adele Goldberg and David Robson. Smalltalk-80: The Language and its
Implementation. Addison-Wesley, 1983.
[3]
Jan Hanneman and Gregor Kiczales. Design pattern implementation in Java
and AspectJ. In Proceedings of the 17th International Conference on
Object-Oriented Programming Systems, Languages and Applications
(OOPSLA 2002), pages 161–173, Seattle, Washington, USA, November
2002. ACM Press. ACM SIGPLAN Notices, 37(11).
[4]
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina
V. Lopes, Jean-Marc Loingtier, and John Irwin.
Aspect-oriented
programming. In Mehmet Ak¸sit and Satoshi Matsuoka, editors,
Proceedings of the 11th European Conference on Object-Oriented
Programming (ECOOP 97), volume 1241 of Lecture Notes in Computer
Science, pages 220–242, Jyväskylä, Finland, June 1997. Springer-Verlag.
[5]
Hidehiko Masuhara, Gregor Kiczales, and Chris Dutchyn. A compilation and
optimization model for aspect-oriented programs. In G. Hedin, editor,
Proceedings of Compiler Construction (CC2003), volume 2622 of Lecture
Notes in Computer Science, pages 46–60. Springer-Verlag, 2003.
[6]
Fred Rivard. Smalltalk: a reflective language. In Gregor Kiczales, editor,
Proceedings of the 1st International Conference on Metalevel Architectures
and Reflection (Reflection 96), pages 21–38, San Francisco, CA, USA, April
1996.
[7]
Brian C. Smith. Reflection and semantics in a procedural language.
Technical Report 272, MIT Laboratory of Computer Science, 1982.
[8]
Chris Zimmermann. Advances in Object-Oriented Metalevel Architectures
and Reflection. CRC Press, 1996.
Descargar