Skip to main content

An Overview of ALIA4J

An Execution Model for Advanced-Dispatching Languages

  • Conference paper
Objects, Models, Components, Patterns (TOOLS 2011)

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

Abstract

New programming languages that allow to reduce the complexity of software solutions are frequently developed, often as extensions of existing languages. Many implementations thus resort to transforming the extension’s source code to the imperative intermediate representation of the parent language. But approaches like compiler frameworks only allow for re-use of code transformations for syntactically-related languages; they do not allow for re-use across language families. In this paper, we present the ALIA4J approach to bring such re-use to language families with advanced dispatching mechanisms like pointcut-advice or predicate dispatching. ALIA4J introduces a meta-model of dispatching as a rich, extensible intermediate language. By implementing language constructs from four languages as refinements of this meta-model, we show that a significant amount of them can be re-used across language families. Another building block of ALIA4J is a framework for execution environments that automatically derives an execution model of the program’s dispatching from representations in our intermediate language. This model enables different execution strategies for dispatching; we have validated this by implementing three execution environments whose strategies range from interpretation to optimizing code generation.

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. Aktug, I., Naliuka, K.: ConSpec: A formal language for policy specification. In: Proceedings of REM (2008)

    Google Scholar 

  2. Aracic, I., Gasiunas, V., Mezini, M., Ostermann, K.: Overview of CaesarJ. In: Coding Theory 1988. LNCS, vol. 388, pp. 135–173. Springer, Heidelberg (2006)

    Google Scholar 

  3. Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, J., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: abc: An extensible aspectJ compiler. In: Rashid, A., Aksit, M. (eds.) Transactions on Aspect-Oriented Software Development I. LNCS, vol. 3880, pp. 293–334. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  4. Bijker, R., Bockisch, C., Sewe, A.: Optimizing the evaluation of patterns in pointcuts. In: Proceedings of VMIL (2010)

    Google Scholar 

  5. Bockisch, C.: An Efficient and Flexible Implementation of Aspect-Oriented Languages. PhD thesis, Technische Universität Darmstadt (2009)

    Google Scholar 

  6. Bockisch, C., Kanthak, S., Haupt, M., Arnold, M., Mezini, M.: Efficient control flow quantification. In: Proceedings of OOPSLA (2006)

    Google Scholar 

  7. Bockisch, C., Malakuti, S., Aksit, M., Katz, S.: Making aspects natural: Events and composition. In: Proceedings of AOSD (2011)

    Google Scholar 

  8. Bockisch, C., Mezini, M.: A flexible architecture for pointcut-advice language implementations. In: Proceedings of VMIL (2007)

    Google Scholar 

  9. Bockisch, C., Sewe, A.: Generic IDE support for dispatch-based composition. In: Proceedings of Composition (2010)

    Google Scholar 

  10. Chambers, C.: Object-oriented multi-methods in Cecil. In: ECOOP 1992. LNCS, vol. 615, Springer, Heidelberg (1992)

    Google Scholar 

  11. Clifton, C., Millstein, T., Leavens, G.T., Chambers, C.: MultiJava: Design rationale, compiler implementation, and applications. ACM TOPLAS 28(3) (2006)

    Google Scholar 

  12. de Roo, A., Hendriks, M., Havinga, W., Dürr, P., Bergmans, L.: Compose*: a language- and platform-independent aspect compiler for composition filters. In: Proceedings of WASDeTT (2008)

    Google Scholar 

  13. Dyer, R., Rajan, H.: Supporting dynamic aspect-oriented features. ACM TOSEM 20(2) (2010)

    Google Scholar 

  14. Ekman, T., Hedin, G.: The JastAdd extensible Java compiler. In: Proceedings of OOPSLA (2007)

    Google Scholar 

  15. Ernst, M., Kaplan, C., Chambers, C.: Predicate dispatching: A unified theory of dispatch. In: Proceedings of ECOOP (1998)

    Google Scholar 

  16. Flach, P.: Implementierung von AspectJ-Intertypdeklarationen. Bachelor’s Thesis, Technische Universität Darmstadt (2008) (in German)

    Google Scholar 

  17. Havinga, W., Aksit, M.: Prototyping and composing aspect languages. In: Ryan, M. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 180–206. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  18. Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented programming. Journal of Object Technology 7(3) (2008)

    Google Scholar 

  19. Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Lee, S.H. (ed.) ECOOP 2001. LNCS, vol. 2072, p. 327. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  20. Masuhara, H., Kiczales, G.: Modeling crosscutting in aspect-oriented mechanisms. In: Proceedings of ECOOP (2003)

    Google Scholar 

  21. Millstein, T., Frost, C., Ryder, J., Warth, A.: Expressive and modular predicate dispatch for Java. ACM TOPLAS 31(2), 1–54 (2009)

    Article  Google Scholar 

  22. Nystrom, N., Clarkson, M.R., Myers, A.C.: Polyglot: An extensible compiler framework for Java. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 138–152. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  23. Royce, W.: Improving software economics-top 10 principles of achieving agility at scale. White paper, IBM Rational (May 2009)

    Google Scholar 

  24. Ryder, B.G., Soffa, M.L., Burnett, M.: The impact of software engineering research on modern progamming languages. ACM TOSEM (14) (2005)

    Google Scholar 

  25. Schippers, H., Janssens, D., Haupt, M., Hirschfeld, R.: Delegation-based semantics for modularizing crosscutting concerns. In: Proceedings of OOPSLA (2008)

    Google Scholar 

  26. Sewe, A., Bockisch, C., Mezini, M.: Redundancy-free residual dispatch. In: Proceedings of FOAL (2008)

    Google Scholar 

  27. Tanter, É.: An extensible kernel language for AOP. In: Proceedings of the Workshop on Open and Dynamic Aspect Languages (2006)

    Google Scholar 

  28. Yin, H., Bockisch, C.: Developing a generic debugger for advanced-dispatching languages. In: Proceedings of WASDeTT (2010)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bockisch, C., Sewe, A., Mezini, M., Akşit, M. (2011). An Overview of ALIA4J. In: Bishop, J., Vallecillo, A. (eds) Objects, Models, Components, Patterns. TOOLS 2011. Lecture Notes in Computer Science, vol 6705. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-21952-8_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-21952-8_11

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-21951-1

  • Online ISBN: 978-3-642-21952-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics