Reflectivity

Overview

Welcome to the Reflectivity!

The Reflectivity is work on progress based on Squeak. It provides extensions to the standard reflection features of Smalltalk for both structural and behavioral reflection: - Structural reflection is extended by sub-method reflection: the structure of method bodies has as a first class and causally connected representation that can easily be extended and annotated.

  • Behavioral Reflection is provided by a new and improved version of Geppetto, a realization of Partial Behavioral Reflection as pioneered by Reflex.

There are some slides from a demo at DYLA07 here

Subsystems

  • Persephone. This provides Reflective Methods and a small "JIT" compiler (extensible with plugins) to generate bytecode for execution.
  • Geppetto. Reflex for Squeak, redone. Simplified a lot from the original Geppetto, it uses annotations on method structure instead of bytecode manipulation.

Download

Latest Release: 0.19, Ready to run image: Reflectivity.zip

How to install from Pharo (pre-closures) (more extensive description: INSTALL.txt):

  • get Pharo from pharoproject.org
  • install ReflectivityLoader from SqueakSource
  • load packages with ReflectivityLoader new loadStablePackages
  • Recompile the image using class PERecompiler

Publications

Refereed Papers in International Journals

  1. Niklaus Haldimann, Marcus Denker, and Oscar Nierstrasz. Practical, Pluggable Types for a Dynamic Language. In Journal of Computer Languages, Systems and Structures 35(1) p. 48—64, April 2009. DOI PDF 
  2. David Röthlisberger, Marcus Denker, and Éric Tanter. Unanticipated Partial Behavioral Reflection: Adapting Applications at Runtime. In Journal of Computer Languages, Systems and Structures 34(2) p. 46—65, July 2008. DOI PDF 

Refereed Papers in International Conferences

  1. Marcus Denker, Stéphane Ducasse, Adrian Lienhard, and Philippe Marschall. Sub-Method Reflection. In Journal of Object Technology, Special Issue. Proceedings of TOOLS Europe 2007, 6 p. 231—251, ETH, October 2007. DOI URL 
  2. Marcus Denker, Mathieu Suen, and Stéphane Ducasse. The Meta in Meta-object Architectures. In Proceedings of TOOLS EUROPE 2008, LNBIP 11 p. 218—237, Springer-Verlag, 2008. DOI PDF 
  3. Niklaus Haldimann, Marcus Denker, and Oscar Nierstrasz. Practical, Pluggable Types. In Proceedings of the 2007 International Conference on Dynamic Languages (ICDL 2007), p. 183—204, ACM Digital Library, 2007. DOI PDF 
  4. Lukas Renggli and Oscar Nierstrasz. Transactional Memory for Smalltalk. In Proceedings of the 2007 International Conference on Dynamic Languages (ICDL 2007), p. 207—221, ACM Digital Library, 2007. DOI PDF 
  5. David Röthlisberger, Marcus Denker, and Éric Tanter. Unanticipated Partial Behavioral Reflection. In Advances in Smalltalk — Proceedings of 14th International Smalltalk Conference (ISC 2006), LNCS 4406 p. 47—65, Springer, 2007. DOI PDF 
  6. David Röthlisberger, Orla Greevy, and Oscar Nierstrasz. Exploiting Runtime Information in the IDE. In Proceedings of the 16th International Conference on Program Comprehension (ICPC 2008), p. 63—72, IEEE Computer Society, Los Alamitos, CA, USA, 2008. DOI PDF 

Refereed Papers in International Workshops

  1. Marcus Denker, Orla Greevy, and Michele Lanza. Higher Abstractions for Dynamic Analysis. In 2nd International Workshop on Program Comprehension through Dynamic Analysis (PCODA 2006), p. 32—38, 2006. PDF URL 
  2. Marcus Denker, Orla Greevy, and Oscar Nierstrasz. Supporting Feature Analysis with Runtime Annotations. In Proceedings of the 3rd International Workshop on Program Comprehension through Dynamic Analysis (PCODA 2007), p. 29—33, Technische Universiteit Delft, 2007. PDF URL 

Book Chapters

  1. Oscar Nierstrasz, Marcus Denker, and Lukas Renggli. Model-Centric, Context-Aware Software Adaptation. In Betty H.C. Cheng, Rogerio Lemos, Holger Giese, Paola Inverardi, and Jeff Magee (Ed.), Software Engineering for Self-Adaptive Systems, LNCS 5525 p. 128-145, Springer-Verlag, 2009. DOI PDF 

Theses

  1. Marcus Denker. Sub-method Structural and Behavioral Reflection. PhD thesis, University of Bern, May 2008. PDF 
  2. Niklaus Haldimann. TypePlug — Pluggable Type Systems for Smalltalk. Master's thesis, University of Bern, April 2007. PDF 
  3. Philippe Marschall. Persephone: Taking Smalltalk Reflection to the sub-method Level. Master's Thesis, University of Bern, December 2006. PDF 
  4. David Röthlisberger. Geppetto: Enhancing Smalltalk's Reflective Capabilities with Unanticipated Reflection. Master's Thesis, University of Bern, January 2006. PDF 

Users of Reflectivity

Reflectivity has been used in some projects:

  • Hermion: Exploiting Runtime Information in the IDE, Paper, (David Röthlisberger)
  • TypePlug: Pluggable Types for Squeak, Paper, (Nik Haldiman)
  • Transactional Memory for Smalltalk, Paper, (Lukas Renggli)
  • HistOOry. Manage simply the past: Persistent Objects. HistOOry Website, (Frédéric Pluquet)

Contact

Last changed by admin on 21 April 2009