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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Aktug, I., Naliuka, K.: ConSpec: A formal language for policy specification. In: Proceedings of REM (2008)
Aracic, I., Gasiunas, V., Mezini, M., Ostermann, K.: Overview of CaesarJ. In: Coding Theory 1988. LNCS, vol. 388, pp. 135–173. Springer, Heidelberg (2006)
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)
Bijker, R., Bockisch, C., Sewe, A.: Optimizing the evaluation of patterns in pointcuts. In: Proceedings of VMIL (2010)
Bockisch, C.: An Efficient and Flexible Implementation of Aspect-Oriented Languages. PhD thesis, Technische Universität Darmstadt (2009)
Bockisch, C., Kanthak, S., Haupt, M., Arnold, M., Mezini, M.: Efficient control flow quantification. In: Proceedings of OOPSLA (2006)
Bockisch, C., Malakuti, S., Aksit, M., Katz, S.: Making aspects natural: Events and composition. In: Proceedings of AOSD (2011)
Bockisch, C., Mezini, M.: A flexible architecture for pointcut-advice language implementations. In: Proceedings of VMIL (2007)
Bockisch, C., Sewe, A.: Generic IDE support for dispatch-based composition. In: Proceedings of Composition (2010)
Chambers, C.: Object-oriented multi-methods in Cecil. In: ECOOP 1992. LNCS, vol. 615, Springer, Heidelberg (1992)
Clifton, C., Millstein, T., Leavens, G.T., Chambers, C.: MultiJava: Design rationale, compiler implementation, and applications. ACM TOPLAS 28(3) (2006)
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)
Dyer, R., Rajan, H.: Supporting dynamic aspect-oriented features. ACM TOSEM 20(2) (2010)
Ekman, T., Hedin, G.: The JastAdd extensible Java compiler. In: Proceedings of OOPSLA (2007)
Ernst, M., Kaplan, C., Chambers, C.: Predicate dispatching: A unified theory of dispatch. In: Proceedings of ECOOP (1998)
Flach, P.: Implementierung von AspectJ-Intertypdeklarationen. Bachelor’s Thesis, Technische Universität Darmstadt (2008) (in German)
Havinga, W., Aksit, M.: Prototyping and composing aspect languages. In: Ryan, M. (ed.) ECOOP 2008. LNCS, vol. 5142, pp. 180–206. Springer, Heidelberg (2008)
Hirschfeld, R., Costanza, P., Nierstrasz, O.: Context-oriented programming. Journal of Object Technology 7(3) (2008)
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)
Masuhara, H., Kiczales, G.: Modeling crosscutting in aspect-oriented mechanisms. In: Proceedings of ECOOP (2003)
Millstein, T., Frost, C., Ryder, J., Warth, A.: Expressive and modular predicate dispatch for Java. ACM TOPLAS 31(2), 1–54 (2009)
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)
Royce, W.: Improving software economics-top 10 principles of achieving agility at scale. White paper, IBM Rational (May 2009)
Ryder, B.G., Soffa, M.L., Burnett, M.: The impact of software engineering research on modern progamming languages. ACM TOSEM (14) (2005)
Schippers, H., Janssens, D., Haupt, M., Hirschfeld, R.: Delegation-based semantics for modularizing crosscutting concerns. In: Proceedings of OOPSLA (2008)
Sewe, A., Bockisch, C., Mezini, M.: Redundancy-free residual dispatch. In: Proceedings of FOAL (2008)
Tanter, É.: An extensible kernel language for AOP. In: Proceedings of the Workshop on Open and Dynamic Aspect Languages (2006)
Yin, H., Bockisch, C.: Developing a generic debugger for advanced-dispatching languages. In: Proceedings of WASDeTT (2010)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)