AOSD Conference
›› Keynotes
›› Research Track
›› Industry Track
›› Demonstrations
›› Tutorials
›› Workshops
›› Spring School

Back to list of tutorials

T4 : Aspect-Oriented Programming with C++ and AspectC++

Date Tuesday, March 13, 2007 (half day)
Presenters Professor Olaf Spinczyk, Friedrich-Alexander-University
Daniel Lohmann, Friedrich-Alexander-University
Level Basic. Participants should be familiar with C/C++. Basic understanding of AOSD is recommended.
Room Beluga


Aspect-oriented programming with C++ does not necessarily require a language extension like AspectJ for Java. There is a set of idioms, which allows the modular implementation of crosscutting concerns in C++, purely based on the features provided by the language. The first part of this tutorial will present these idioms and also discuss the drawbacks of this approach in comparison to a language extension. The rest of the tutorial will concentrate on AspectC++, a language extension to C++ which extends the AspectJ approach into the C++ world. With this extension, aspects can be implemented and applied to component code without having to change the existing code base. The tutorial will introduce AspectC++ language elements and present various examples. A compiler for AspectC++, which transforms AspectC++ code into standard C++, as well as an Eclipse Add-In, are available under the GPL from Furthermore, pure-systems GmbH offers commercial support for the compiler and an Add-In to integrate it into Visual Studio. After the language introduction, a dedicated part will focus on development environments for AspectC++. It covers the usage of the ac++ compiler and also the available integrated development environments, namely the ACDT Eclipse Add-In and the Visual Studio Add-In. These demonstrations are followed by the presentation of a more complex “real-world” application, which shows that AspectC++ is an ideal language to develop (embedded) software product lines. The tutorial ends with a summary and a discussion of future work.


Professor Olaf Spinczyk has a background of more than seven years research on AOP and operating systems. In 2002 he got the “best dissertation of 2002” award by the computer science faculty of the University of Magdeburg, Germany, for his work in this field. In 2001 he started the development of AspectC++. Today he is the main designer and developer of the ac++ weaver. In 2002 he started to cooperate with the pure-systems GmbH in Magdeburg, Germany, to speed up the ac++ development and to evolve it from a research prototype to a commercial product.

Daniel Lohmann worked as software developer, consultant and trainer for several years. He finished his Diploma in Computer Science in 2002. His PhD research is on the development of aspect-oriented operating system product-lines. Since joining the Operating Sytems group at Friedrich-Alexander-University, he actively participates in the AspectC++ language design and the ac++ development. His main focus is the combination of aspects with generic code.

Edited by the AOSD Conference Committee.  Send comments to: