AOSD Conference
›› Program Overview
›› Research Track
›› Industry Track
›› Keynotes
›› Workshops
›› Tutorials
›› Demonstrations
›› Panel
›› BOFs
Back to list of tutorials

T6 : abc : A Workbench for Aspect-Oriented Programming Language Research

Date Tuesday, March 21, 2006 (full day)
Presenters Oege de Moor, Oxford University
Laurie Hendren, McGill University
Ondrej Lhoták, University of Waterloo
Level Intermediate: Knowledge of Java and AspectJ required.


The proliferation of new features, analyses and optimisations for aspect-oriented programming languages necessitates a workbench for realistic experiments. The AspectBench Compiler (abc for short) provides such a workbench. The base compiler is a full implementation of the AspectJ language. abc has been designed to disentangle the implementation of new, experimental features from the base compiler. abc has also been designed to enable the implementation of advanced analyses, for the purpose of optimisation, but also to enable static detection of bugs. By working through concrete examples from the literature, participants will learn how to integrate their own language extensions, analyses and optimisations into abc.


Oege de Moor received an M.Sc. degree from the University of Utrecht, the Netherlands. He did his doctoral (D.Phil.) work at Oxford, on a characterisation in category theory of algorithmic paradigms such as dynamic programming. He has held visiting appointments at the University of Tokyo, Chalmers University and Microsoft Research (both Redmond and Cambridge). Since 1994 he has been a faculty member at Oxford, where he founded the Algebra of Programming research group, jointly with Richard Bird. After the publication of a textbook on that subject in 1997, he turned to the general area of meta-programming, and founded the Programming Tools Group. Research topics in the group include type systems for metaprogramming, mechanised support for refactoring, and aspect-orientation. During the 2003-2004 academic year Professor Hendren visited Oxford University, and they started the joint abc project, the topic of this tutorial.

Summary of Teaching Experience: Oege de Moor has taught at Oxford for 11 years, on topics ranging from computational geometry to database systems. He has also lectured at specialist summer schools in Brazil, Denmark, Germany, the Netherlands and Portugal. For the past two years he has taught a a course at Oxford that focuses on code queries, refactoring and aspect-oriented programming.

Laurie Hendren received the B.Sc.(Honours) and M.Sc degrees in Computing and Information Science at Queen’s University, Kingston, Canada. She received the Ph.D. degree from Cornell University, Ithaca, N.Y. Her Ph.D. thesis was in the area of automatic parallelization of programs with pointer data structures. Since 1990 she has been a faculty member in the School of Computer Science at McGill University where she has led the McCAT optimizing/parallelizing compiler project, and currently leads the Sable project that concentrates on compiling and optimizing Java. During the 2003-2004 academic year she visited Professor de Moor at Oxford University, where they started the joint abc project, the topic of this tutorial.

Summary of Teaching Experience: Professor Hendren has had substantial teaching experience, 15 years teaching at McGill where she has taught courses on Java, compiler design, and advanced compiler topics. Since 2006, she has been teaching a course on advanced object-oriented and aspect-oriented programming. Detailed course web pages are available from her web site. She has twice been nominated for the award as best teacher in the Faculty of Science at McGill.

Ondrej Lhoták received a B.Math. (Honours) degree in Computer Science from the University of Waterloo in Waterloo, Ontario, Canada. He received M.Sc. and Ph.D. degrees in Computer Science from McGill University in Montreal, Quebec, Canada. His thesis was in the area of interprocedural analysis of object-oriented and aspect-oriented programming languages. Since January 2006, he has been an assistant professor at the University of Waterloo. During his graduate studies at McGill University, he was a maintainer of the Soot framework on which abc is built. He was a member of the abc team from the beginning of the project, and continues to contribute.

Summary of Teaching Experience: Professor Lhot´ak has been a teaching assistant for courses on compilers, as well as introductory computer science courses. At PLDI 2003 and CASCON 2003, he was one of the presenters of a tutorial on the Soot framework.

Edited by the AOSD Conference Committee.  Send comments to: