Monday, Full Day
Aspect-Oriented Programming with AspectJ™
Convention Ctr — Room 20
Gregor Kiczales, Xerox PARC, University of British Columbia
Erik Hilsdale, Xerox PARC

Aspect-oriented programming (AOP) is a technique for improving separation of concerns in software design and implementation. AOP works by providing explicit mechanisms for capturing the structure of crosscutting concerns. AspectJ is a seamless aspect-oriented extension to Java™. It can be used to cleanly modularize the crosscutting structure of concerns such as exception handling, multi-object protocols, synchronization, performance optimizations, and resource sharing. When implemented in a non-aspect-oriented fashion, the code for these concerns typically becomes spread out across entire programs. AspectJ controls such code-tangling and makes the underlying concerns more apparent, making programs easier to develop and maintain. This tutorial will introduce aspect-oriented programming and show how to use AspectJ to implement crosscutting concerns in a concise, modular way. We will use numerous examples to develop participants’ understanding of aspect-oriented programming through AspectJ. We will also demonstrate AspectJ’s integration with IDEs such as JBuilder 4.0 and Forte4J, and emacs. AspectJ is freely available at

Attendee Background: Attendees should have experience doing object-oriented design and implementation, and should be able to read Java code. No prior experience with aspect-oriented programming or AspectJ is required.

Presenters: 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 aspect-oriented programming and 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 computational reflection. He has given numerous invited talks, lectures, and tutorials at conferences, universities, and in industry.

Erik Hilsdale is a member of the research staff at Xerox’s Palo Alto Research Center. As a member of the AspectJ project team, he focuses on language design, pedagogy, and compiler implementation. He has written several conference and workshop publications in programming languages. He is an experienced and energetic instructor in programming languages with a long background with AspectJ.

at a Glance
Tutorials by Track
Full Description
of all Tutorials
Final Program