T9 : Aspect-Oriented Programming with C++ and AspectC++
||Tuesday, March 15, 2005 afternoon (half day)
Olaf Spinczyk, Friedrich-Alexander-University
Daniel Lohmann, Friedrich-Alexander-University
Participants should be familiar with C/C++. Basic understanding of AOSD
is recommended, but not required.
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. 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.
A compiler for AspectC++, which transforms AspectC++ code into standard C++,
as well as an Eclipse Add-In, are available under the GPL at www.aspectc.org.
Furthermore, pure-systems GmbH offers commercial support for the compiler and
an Add-In to integrate it into Visual Studio.
Olaf has a background of more than six 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 and was a candidate for the dissertation award by the German Computer
Science Society (GI). 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
Daniel 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 Systems 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: webmasteraosd.net