Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/1939399.1939415guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

A meta-aspect protocol for developing dynamic analyses

Published: 01 November 2010 Publication History

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.

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).
[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).
[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).
[4]
Aracic, I., Gasiunas, V., Mezini, M., Ostermann, K.: An overview of Caesar J. In: Rashid, A., Aksit, M. (eds.) Transactions on Aspect-Oriented Software Development I. LNCS, vol. 3880, pp. 135-173. Springer, Heidelberg (2006).
[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).
[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).
[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).
[8]
Bodden, E., Stolz, V.: Efficient temporal pointcuts through dynamic advice deployment. In: Open and Dynamic Aspect Languages Workshop (2006).
[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).
[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).
[11]
Dinkelaker, T., Mezini, M., Bockisch, C.: The art of the meta-aspect protocol. In: AOSD 2009, pp. 51-62. ACM, New York (2009).
[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).
[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).
[14]
Kiczales, G., Rivieres, J.D., Bobrow, D.G.: The Art of the Metaobject Protocol. MIT Press, Cambridge (1991).
[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).
[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).
[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).
[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).
[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).
[22]
Tanter, É: Beyond static and dynamic scope. In: Proceedings of the 5th ACM Dynamic Languages Symposium, pp. 3-14. ACM, New York (2009).
[23]
Toledo, R., Leger, P., Tanter, É: AspectScript: Expressive aspects for the Web. In: AOSD 2010, ACM, New York (2010).
[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).
[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).
[26]
Visser, W., Havelund, K., Brat, G., Park, S.: Model checking programs. In: Automated Software Engineering, pp. 3-11. IEEE, Los Alamitos (2000).

Cited By

View all
  • (2015)Towards modular instrumentation of interpreters in JavaScriptCompanion Proceedings of the 14th International Conference on Modularity10.1145/2735386.2736753(64-69)Online publication date: 16-Mar-2015
  • (2015)A Taxonomy of Domain-Specific Aspect LanguagesACM Computing Surveys10.1145/268502847:3(1-44)Online publication date: 17-Feb-2015
  • (2015)Introduction to dynamic program analysis with DiSLScience of Computer Programming10.1016/j.scico.2014.01.00398:P1(100-115)Online publication date: 1-Feb-2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image Guide Proceedings
RV'10: Proceedings of the First international conference on Runtime verification
November 2010
491 pages
ISBN:3642166113

Publisher

Springer-Verlag

Berlin, Heidelberg

Publication History

Published: 01 November 2010

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2015)Towards modular instrumentation of interpreters in JavaScriptCompanion Proceedings of the 14th International Conference on Modularity10.1145/2735386.2736753(64-69)Online publication date: 16-Mar-2015
  • (2015)A Taxonomy of Domain-Specific Aspect LanguagesACM Computing Surveys10.1145/268502847:3(1-44)Online publication date: 17-Feb-2015
  • (2015)Introduction to dynamic program analysis with DiSLScience of Computer Programming10.1016/j.scico.2014.01.00398:P1(100-115)Online publication date: 1-Feb-2015
  • (2013)Aspectizing JavaScript securityProceedings of the 3rd workshop on Modularity in systems software10.1145/2451613.2451616(7-12)Online publication date: 25-Mar-2013
  • (2012)DiSLProceedings of the 11th annual international conference on Aspect-oriented Software Development10.1145/2162049.2162077(239-250)Online publication date: 25-Mar-2012

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media