Skip to main content

On Typesafe Aspect Implementations in C++

  • Conference paper
Software Composition (SC 2005)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3628))

Included in the following conference series:

Abstract

Compared to other languages, the C++ language offers a less powerful runtime type system, but a very powerful static type system. In AspectC++, this is addressed by an extended join-point API that provides static type information at compile-time and type-safe access to join-point-specific context information. In this paper we show, how the use of static type information leads to the development highly generic, but type-safe aspects that fit well into the C++ language model. This is demonstrated by an example.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. AspectC++ homepage, http://www.aspectc.org/

  2. Alexandrescu, A.: Modern C++ Design: Generic Programming and Design Patterns Applied. Addison-Wesley, Reading (2001)

    Google Scholar 

  3. Czarnecki, K., Dominick, L., Eisenecker, U.W.: Aspektorientierte Programmierung in C++, Teil 1–3. iX, Magazin für professionelle Informationstechnik, 8–10 (2001)

    Google Scholar 

  4. Diggins, C.: Aspect-Oriented Programming & C++. Dr. Dobb’s Journal of Software Tools 408(8) (August 2004)

    Google Scholar 

  5. Hanenberg, S., Unland, R.: Parametric introductions. In: Akşit, M. (ed.) Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD 2003), Boston, MA, USA, pp. 80–89. ACM Press, New York (2003)

    Chapter  Google Scholar 

  6. Kennedy, A., Syme, D.: The design and implementation of generics for the .NET Common Language Runtime. In: Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2000) (June 2001)

    Google Scholar 

  7. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: Getting started with AspectJ. Communications of the ACM, 59–65 (2001)

    Google Scholar 

  8. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of aspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327–353. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  9. Kniesel, G., Rho, T., Hanenberg, S.: Evolvable pattern implementations need generic aspects. In: Proceedings of the ECOOP 2004 Workshop on Reflection, AOP and Meta-Data for Software Evolution (RAM-SE 2004), Oslo, Norway (June 2004)

    Google Scholar 

  10. Lohmann, D., Blaschke, G., Spinczyk, O.: Generic advice: On the combination of AOP with generative programming in aspectC++. In: Karsai, G., Visser, E. (eds.) GPCE 2004. LNCS, vol. 3286, pp. 55–74. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  11. Rajan, H., Sullivan, K.: Eos: Instance-level aspects for integrated system design. In: Proceedings of the 4th Joint European Software Engineering Conference and ACM Symposium on the Foundations of Software Engineering (ESEC/FSE 2003) (September 2003)

    Google Scholar 

  12. Schüpany, M., Schwanninger, C., Wuchner, E.: Aspect-oriented programming for .NET. In: Proceedings of the 1st AOSDWorkshop on Aspects, Components and Patterns for Infrastructure Software (AOSD-ACP4IS 2002) (March 2002)

    Google Scholar 

  13. Spinczyk, O., Gal, A., Schröder-Preikschat, W.: AspectC++: An aspect-oriented extension to C++. In: Proceedings of the 40th International Conference on Technology of Object-Oriented Languages and Systems (TOOLS Pacific 2002), Sydney, Australia, February 2002, pp. 53–60 (2002)

    Google Scholar 

  14. Vandevoorde, D.: Reflective metagrogramming. In: Presentation held on the ACCU 2003 Spring Conference, Oxford, UK (April 2003), http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1471.pdf

  15. Vollmann, D.: Visibility of join-points in AOP and implementation languages. In: Second GI Workshop on Aspect-Oriented Software Development, Bonn, Germany (February 2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 IFIP International Federation for Information Processing

About this paper

Cite this paper

Lohmann, D., Spinczyk, O. (2005). On Typesafe Aspect Implementations in C++. In: Gschwind, T., Aßmann, U., Nierstrasz, O. (eds) Software Composition. SC 2005. Lecture Notes in Computer Science, vol 3628. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11550679_11

Download citation

  • DOI: https://doi.org/10.1007/11550679_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-28748-3

  • Online ISBN: 978-3-540-28749-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics