AOSD 2002
spacerInvited Sessions
spacerPaper Sessions
spacerInformal Meetings
About Enschede
Student Volunteers
AOSD 2002
Keynotes Invited Sessions Panel Paper Sessions Tutorials Workshops Demonstrations
Composition Filters Hyper/J Introduction to AspectJ Advanced AspectJ Aspect Sand Box Demeter
Tutorial title
T5: AOP Language Exploration Using the Aspect Sand Box
Tuesday April 23 - half day (9:00 - 12:30)
(to be determined)
OOSD: advanced
AOSD: intermediate

The audience should have a basic knowledge of AOP and one of the main AOP proposals. Additionally the audience should be able to understand the structure of simple programming language interpreters. Programming language researchers or experienced commercial developers should have no problem following and participating in the tutorial.


The Aspect Sand Box (ASB) is a tool for understanding and comparing a wide range of AOP language features. In this tutorial you will learn how to use the ASB to explore existing and new AOP languages.

The tutorial is intended to be of value to practitioners, general AO researchers and programming language researchers.

The ASB makes it easy and fun to explore questions like: What is the correspondence among AspectJ, HyperJ and Demeter? What is the difference between compiling and interpreting an AOP program? What kinds of variations in join point model are possible? What is the difference between adding a new kind of join point and adding a new kind of advice?

The ASB provides a framework for building simple interpreters for AOP languages, together with implementations for a number of existing languages. Each interpreter models the semantics and implementation of one kind of AOP language. The framework is designed so that it is easy to understand the semantics of one AOP language in terms of what it adds to the underlying OOP language; to compare two AOP languages to each other; and to model the runtime costs of an AOP language construct.

In the tutorial we will present ASB and use it to explore several different languages, including AspectJ, HyperJ, Demeter and Composition Filters. Interactive work with the audience will explore variations on these.


Gregor Kiczales is Professor of Computer Science and Xerox/Sierra Systems/NSERC Chair of Software Design at the University of British Columbia. He is also a Principal Scientist at the Xerox Palo Alto Research Center, where he leads the group that has developed AspectJ.

The focus of his research is enabling programmers to write programs that, as much as possible, look like their design. Prior to developing aspect-oriented programming he worked on open implementation, metaobject protocols and the CLOS object-oriented programming language. He is co-author of "The Art of the Metaobject Protocol", a key work in compuational reflection. He has given numerous invited talks, lectures and tutorials at conferences, universities and in industry.

Chris Dutchyn is a PhD. student at the University of British Columbia. As a member of the Software Practices Lab, he focuses on programming language design and implementation, including AOP, reflection, formal semantics, type theory, and efficient implementation.

Hidehiko Masuhara is Assistant Professor in the Graduate School of Arts and Sciences at the University of Tokyo and is currently a visiting Professor at the University of British Columbia. He focuses on programming language mechanisms that provide programmers greater flexibility and efficiency, such as reflection, aspect-orientation and partial evaluation.

Keynotes Invited Sessions Panel Paper Sessions Tutorials Workshops Demonstrations
Composition Filters Hyper/J Introduction to AspectJ Advanced AspectJ Aspect Sand Box Demeter