An Overview of ALIA4J

An Execution Model for Advanced-Dispatching Languages
  • Christoph Bockisch
  • Andreas Sewe
  • Mira Mezini
  • Mehmet Akşit
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, 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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Aktug, I., Naliuka, K.: ConSpec: A formal language for policy specification. In: Proceedings of REM (2008)Google Scholar
  2. 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. 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)CrossRefGoogle Scholar
  4. 4.
    Bijker, R., Bockisch, C., Sewe, A.: Optimizing the evaluation of patterns in pointcuts. In: Proceedings of VMIL (2010)Google Scholar
  5. 5.
    Bockisch, C.: An Efficient and Flexible Implementation of Aspect-Oriented Languages. PhD thesis, Technische Universität Darmstadt (2009)Google Scholar
  6. 6.
    Bockisch, C., Kanthak, S., Haupt, M., Arnold, M., Mezini, M.: Efficient control flow quantification. In: Proceedings of OOPSLA (2006)Google Scholar
  7. 7.
    Bockisch, C., Malakuti, S., Aksit, M., Katz, S.: Making aspects natural: Events and composition. In: Proceedings of AOSD (2011)Google Scholar
  8. 8.
    Bockisch, C., Mezini, M.: A flexible architecture for pointcut-advice language implementations. In: Proceedings of VMIL (2007)Google Scholar
  9. 9.
    Bockisch, C., Sewe, A.: Generic IDE support for dispatch-based composition. In: Proceedings of Composition (2010)Google Scholar
  10. 10.
    Chambers, C.: Object-oriented multi-methods in Cecil. In: ECOOP 1992. LNCS, vol. 615, Springer, Heidelberg (1992)Google Scholar
  11. 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. 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. 13.
    Dyer, R., Rajan, H.: Supporting dynamic aspect-oriented features. ACM TOSEM 20(2) (2010)Google Scholar
  14. 14.
    Ekman, T., Hedin, G.: The JastAdd extensible Java compiler. In: Proceedings of OOPSLA (2007)Google Scholar
  15. 15.
    Ernst, M., Kaplan, C., Chambers, C.: Predicate dispatching: A unified theory of dispatch. In: Proceedings of ECOOP (1998)Google Scholar
  16. 16.
    Flach, P.: Implementierung von AspectJ-Intertypdeklarationen. Bachelor’s Thesis, Technische Universität Darmstadt (2008) (in German)Google Scholar
  17. 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)CrossRefGoogle Scholar
  18. 18.
    Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented programming. Journal of Object Technology 7(3) (2008)Google Scholar
  19. 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)CrossRefGoogle Scholar
  20. 20.
    Masuhara, H., Kiczales, G.: Modeling crosscutting in aspect-oriented mechanisms. In: Proceedings of ECOOP (2003)Google Scholar
  21. 21.
    Millstein, T., Frost, C., Ryder, J., Warth, A.: Expressive and modular predicate dispatch for Java. ACM TOPLAS 31(2), 1–54 (2009)CrossRefGoogle Scholar
  22. 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)CrossRefGoogle Scholar
  23. 23.
    Royce, W.: Improving software economics-top 10 principles of achieving agility at scale. White paper, IBM Rational (May 2009)Google Scholar
  24. 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. 25.
    Schippers, H., Janssens, D., Haupt, M., Hirschfeld, R.: Delegation-based semantics for modularizing crosscutting concerns. In: Proceedings of OOPSLA (2008)Google Scholar
  26. 26.
    Sewe, A., Bockisch, C., Mezini, M.: Redundancy-free residual dispatch. In: Proceedings of FOAL (2008)Google Scholar
  27. 27.
    Tanter, É.: An extensible kernel language for AOP. In: Proceedings of the Workshop on Open and Dynamic Aspect Languages (2006)Google Scholar
  28. 28.
    Yin, H., Bockisch, C.: Developing a generic debugger for advanced-dispatching languages. In: Proceedings of WASDeTT (2010)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Christoph Bockisch
    • 1
  • Andreas Sewe
    • 2
  • Mira Mezini
    • 2
  • Mehmet Akşit
    • 1
  1. 1.Software Engineering groupUniversity of TwenteThe Netherlands
  2. 2.Software Technology groupTechnische UniversitätDarmstadtGermany

Personalised recommendations