Bifröst: Letting Smalltalk loose

Jorge Ressia


A remarkable number of different approaches to reflection have been introduced over the years, each tackling a different practical problem. Despite many advances, these approaches fall short in offering high-level, general-purpose, compositional mechanisms at the meta-level. In this presentation we survey approaches to reflection to establish the key requirements for practical applications, and illustrate the limitations of these approaches from an engineering perspective. We claim that by modeling meta-objects explicitly and unifying the advantages of various approaches we obtain a cleaner approach to reflection. We introduce Bifröst, a prototype of a reflective system based on explicit meta-objects. We present a series of examples illustrating how explicit meta-objects fulfill established requirements while improving expressive power. We demonstrate Bifröst usefulness by presenting various spin-offs: Subjectopia, Chameleon, Talents and Prisma.


Since September 2008 Jorge Ressia is a PhD candidate at Bern University at the Software Composition Group. His main interests are Object Oriented Programming, Reflection, and Compiler and Virtual machines construction. He holds a MSc in Computer Science from Mcgill University in Montreal. He has 8 yeas of experience providing OO solutions for different domains. He is participating in Pharo an open-source Smalltalk