Skip to main content

A Meta-Aspect Protocol for Developing Dynamic Analyses

  • Conference paper
Runtime Verification (RV 2010)

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

Included in the following conference series:

  • 1541 Accesses

Abstract

Dynamic aspect-oriented programming has been widely used for the development of dynamic analyses to abstract over low-level program instrumentation. Due to particular feature requirements in different analysis domains like debugging or testing, many different aspect languages were developed from scratch or by extensive compiler or interpreter extensions. We introduce another level of abstraction in form of a meta-aspect protocol to separate the host language from the analysis domain. A language expert can use this protocol to tailor an analysis-specific aspect language, based on which a domain expert can develop a particular analysis. Our design enables a flexible specification of the join point model, configurability of aspect deployment and scoping, and extensibility of pointcut and advice language. We present the application of our design to different dynamic analysis domains.

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. Achenbach, M., Ostermann, K.: Growing a dynamic aspect language in Ruby. In: Proceedings of the 2010 AOSD Workshop on Domain-Specific Aspect Languages. ACM, New York (2010)

    Google Scholar 

  2. Achenbach, M., Ostermann, K.: Testing object-oriented programs using dynamic aspects and non-determinism. In: Proceedings of the 1st ECOOP Workshop on Testing Object-Oriented Systems. ACM, New York (2010)

    Google Scholar 

  3. Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to AspectJ. In: OOPSLA 2005, pp. 345–364. ACM, New York (2005)

    Google Scholar 

  4. Aracic, I., Gasiunas, V., Mezini, M., Ostermann, K.: An overview of CaesarJ. In: Rashid, A., Aksit, M. (eds.) Transactions on Aspect-Oriented Software Development I. LNCS, vol. 3880, pp. 135–173. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  5. Binder, W., Villazón, A., Ansaloni, D., Moret, P.: @J: towards rapid development of dynamic analysis tools for the Java Virtual Machine. In: Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages, pp. 1–9. ACM, New York (2009)

    Google Scholar 

  6. Bockisch, C., Haupt, M., Mezini, M., Ostermann, K.: Virtual machine support for dynamic join points. In: AOSD 2004, pp. 83–92. ACM, New York (2004)

    Google Scholar 

  7. Bodden, E., Havelund, K.: Racer: effective race detection using AspectJ. In: Proceedings of the 2008 International Symposium on Software Testing and Analysis, pp. 155–166. ACM, New York (2008)

    Google Scholar 

  8. Bodden, E., Stolz, V.: Efficient temporal pointcuts through dynamic advice deployment. In: Open and Dynamic Aspect Languages Workshop (2006)

    Google Scholar 

  9. Copty, S., Ur, S.: Multi-threaded testing with AOP is easy, and it finds bugs! In: Cunha, J.C., Medeiros, P.D. (eds.) Euro-Par 2005. LNCS, vol. 3648, pp. 740–749. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  10. Dinkelaker, T., Mezini, M.: Dynamically linked domain-specific extensions for advice languages. In: Proceedings of the 2008 AOSD Workshop on Domain-Specific Aspect Languages, pp. 1–7. ACM, New York (2008)

    Google Scholar 

  11. Dinkelaker, T., Mezini, M., Bockisch, C.: The art of the meta-aspect protocol. In: AOSD 2009, pp. 51–62. ACM, New York (2009)

    Google Scholar 

  12. Gligoric, M., Khurshid, S., Gvero, T., Kuncak, V., Jagannath, V., Marinov, D.: Test generation through programming in UDITA. In: ICSE 2010, pp. 225–234. ACM, New York (2010)

    Google Scholar 

  13. 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 

  14. Kiczales, G., Rivieres, J.D., Bobrow, D.G.: The Art of the Metaobject Protocol. MIT Press, Cambridge, MA, USA (1991)

    Google Scholar 

  15. Maebe, J., Buytaert, D., Eeckhout, L., De Bosschere, K.: Javana: a system for building customized Java program analysis tools. In: OOPSLA 2006, pp. 153–168. ACM, New York (2006)

    Google Scholar 

  16. Nir-Buchbinder, Y., Ur, S.: ConTest listeners: a concurrency-oriented infrastructure for Java test and heal tools. In: Fourth International Workshop on Software Quality Assurance, pp. 9–16. ACM, New York (2007)

    Google Scholar 

  17. Nusayr, A., Cook, J.: AOP for the domain of runtime monitoring: breaking out of the code-based model. In: Proceedings of the 4th Workshop on Domain-Specific Aspect Languages, pp. 7–10. ACM, New York (2009)

    Chapter  Google Scholar 

  18. Parse Tree and Ruby Parser, http://parsetree.rubyforge.org/

  19. Rakesh, M.G.: A lightweight approach for program analysis and debugging. In: Proceedings of the 3rd India Software Engineering Conference, pp. 13–22. ACM, New York (2010)

    Google Scholar 

  20. Ruby2Ruby, http://seattlerb.rubyforge.org/ruby2ruby/

  21. Tanter, É.: Expressive scoping of dynamically-deployed aspects. In: AOSD 2008, pp. 168–179. ACM, New York (2008)

    Google Scholar 

  22. Tanter, É.: Beyond static and dynamic scope. In: Proceedings of the 5th ACM Dynamic Languages Symposium, pp. 3–14. ACM, New York (2009)

    Google Scholar 

  23. Toledo, R., Leger, P., Tanter, É.: AspectScript: Expressive aspects for the Web. In: AOSD 2010, ACM, New York (2010)

    Google Scholar 

  24. Villazón, A., Binder, W., Ansaloni, D., Moret, P.: Advanced runtime adaptation for Java. In: GPCE 2009, pp. 85–94. ACM, New York (2009)

    Google Scholar 

  25. Villazón, A., Binder, W., Ansaloni, D., Moret, P.: HotWave: creating adaptive tools with dynamic aspect-oriented programming in Java. In: GPCE 2009, pp. 95–98. ACM, New York (2009)

    Google Scholar 

  26. Visser, W., Havelund, K., Brat, G., Park, S.: Model checking programs. In: Automated Software Engineering, pp. 3–11. IEEE, Los Alamitos (2000)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Achenbach, M., Ostermann, K. (2010). A Meta-Aspect Protocol for Developing Dynamic Analyses. In: Barringer, H., et al. Runtime Verification. RV 2010. Lecture Notes in Computer Science, vol 6418. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-16612-9_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-16612-9_13

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-16611-2

  • Online ISBN: 978-3-642-16612-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics