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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
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)
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)
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)
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)
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)
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)
Bodden, E., Stolz, V.: Efficient temporal pointcuts through dynamic advice deployment. In: Open and Dynamic Aspect Languages Workshop (2006)
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)
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)
Dinkelaker, T., Mezini, M., Bockisch, C.: The art of the meta-aspect protocol. In: AOSD 2009, pp. 51–62. ACM, New York (2009)
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)
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)
Kiczales, G., Rivieres, J.D., Bobrow, D.G.: The Art of the Metaobject Protocol. MIT Press, Cambridge, MA, USA (1991)
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)
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)
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)
Parse Tree and Ruby Parser, http://parsetree.rubyforge.org/
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)
Ruby2Ruby, http://seattlerb.rubyforge.org/ruby2ruby/
Tanter, É.: Expressive scoping of dynamically-deployed aspects. In: AOSD 2008, pp. 168–179. ACM, New York (2008)
Tanter, É.: Beyond static and dynamic scope. In: Proceedings of the 5th ACM Dynamic Languages Symposium, pp. 3–14. ACM, New York (2009)
Toledo, R., Leger, P., Tanter, É.: AspectScript: Expressive aspects for the Web. In: AOSD 2010, ACM, New York (2010)
Villazón, A., Binder, W., Ansaloni, D., Moret, P.: Advanced runtime adaptation for Java. In: GPCE 2009, pp. 85–94. ACM, New York (2009)
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)
Visser, W., Havelund, K., Brat, G., Park, S.: Model checking programs. In: Automated Software Engineering, pp. 3–11. IEEE, Los Alamitos (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)