Pluggable Reflection: Decoupling Meta-Interface and Implementation

David H. Lorenz, Northeastern University
John Vlissides, IBM T.J. Watson Research Center

Reflection remains a second-class citizen in current programming models, where it's assumed to be imperative and tightly bo und to its implementation. In contrast, most object-oriented APIs all ow interfaces to vary independently of their implementations. Components take this separation a step further by describing unforeseeable attr ibutes---the key to pluggable third-party components. This paper describes how reflection can benefit from a similar evolutionary path.

In Proceedings of the 25th International Conference on Software Engineering, pages 3--13, Portland, Oregon May 3-10, 2003. ICSE 2003, IEEE Computer Society. To appear.


paper.html (html)

icse2003.ps.gz (244k)

icse2003.pdf (575k)

The slides from the ICSE presentation: (424k)

Related papers:
Gilad Bracha and David Ungar: "Mirrors: Design Principles for Meta-level Facilities of Object-Oriented Programming Languages". In OOPSLA'04.
@InProceedings{Lorenz:2003:DCO,
	Author = "David H. Lorenz and John Vlissides",
	Crossref = "ICSE:2003",
	Title = "Pluggable Reflection: {Decoupling} Meta-Interface and Implementation",
	URL = "http://www.ccs.neu.edu/home/lorenz/papers/icse03/",
	Year = 2003,
	Pages = "3--13",
}
---------- ICSE crossref begin ----------
@String{PROC = "Proceedings of"}
@String{ICSE = "International Conference on Software Engineering"}
@String{PROC:ICSE2003 = PROC#" the 25$^{th}$ "#ICSE}
@String{ICSE2003 = "ICSE 2003"}
@Proceedings{ICSE:2003,
	Address = {Portland, Oregon},
	Booktitle = PROC:ICSE2003,
	Key = ICSE2003,
	Month = may#{ 1-10},
	Organization = ICSE2003,
	Publisher = "{IEEE} Computer Society",
	Title = PROC:ICSE2003,
	Year = 2003,
}
---------- ICSE crossref end ----------