Aquí se detallan las extensión de un OO lenguaje:
1) Con clases como valores de primera clase. Además debe ser posible crear clases
en tiempo de ejecución.
Basarse en capitulos first & higher functions del PLAI (mirar también slides)
2) Con mutación de valores usando técnicas funcionales
Ver capitulo 13 Mutable Data Structures del PLAI
3) Con múltiple herencia
Basarse en C++ & Python
4) Con métodos que soporten múltiples parámetros
Usar su ingenio 😛
5) Con soporte a Mixin
Implementing layered designs with mixin layers – Y. Smaragdakis and D. Batory
6) Con soporte inner (es como super pero al revés)
Super and inner: together at last! -Goldberg, David S. and Findler, Robert Bruce and Flatt, Matthew
7) Con soporte de aspectos. Un aspecto puede interceptar un la ejecución de método m de una clase A y ejecutar un código antes o después.
A Compilation and Optimization Model for Aspect-Oriented Program” – Masuhara, H Kiczales, G Dutchyn, C
An Overview of AspectJ – Kiczales, Gregor Hilsdale, Erik Hugunin, Jim Kersten, Mik Palm, Jeffrey Griswold, William G
Para cada paper, no es necesario leerlo completos, solo sus primeras secciones