Apostle: Aspect Programming in Smalltalk

Brian de Alwis
Software Practices Lab

Apostle (Aspect Programming in Smalltalk) is an extension of the Smalltalk language providing Aspect-Oriented Programming (AOP) functionality. It was developed to explore the feasibility to make AOP a natural extension of Smalltalk environments -- meaning with no separate compilation phase. Of greatest importance was supporting the immediacy of any program change, while ensuring that performance not suffer.

Apostle formed the basis of Brian de Alwis's master's thesis at the University of British Columbia, conducted under the supervision of Gregor Kiczales. It is a mostly faithful port of AspectJ 0.8 to Smalltalk, sporting a similar model with pointcuts/joinpoints, advice and aspects.

For further information, see:

Current Status

Unfortunately only an early pre-release of Apostle is available for download. While a solid implementation was completed for Brian's thesis, it is not available for download as Brian's laptop was stolen two months after submission of his thesis. Only then did we discover that his repository had not been backed up for the previous eight months. Brian does have an Unix VAST image with the bytecodes available of the final version of Apostle, which is available on request, but it is a difficult process to reverse-engineer these into source.

This early pre-release, first made available on June 6, 2001, is version 0.2. It was a work-in-progress, not yet suitable for real use, and hence sports the very cool `super-mega-alpha2' label. You may want to read its README before downloading. It currently only supports IBM VisualAge for Smalltalk 4.5.

Known limitations:

Brian de Alwis / bsd@cs.ubc.ca