Abstract
Program generation and transformation techniques have gained considerable attention in the context of domain-specific languages (DSLs) and model-driven architecture (MDA). In this paper we compare domain-specific program generators with general-purpose aspect-oriented languages. We argue that program generation techniques have severe disadvantages with respect to composability, scalability, understandability, and other important software engineering issues. Finally, we advocate general-purpose aspect-oriented languages as an alternative for the implementation of domain-specific languages.
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
AspectJ homepage (2005), http://aspectj.org
Batory, D., Sarvela, J.N., Rauschmayer, A.: Scaling step-wise refinement. In: International Conference on Software Engineering, ICSE 2003 (2003)
Batory, D., Singhal, V., Thomas, J., Dasari, S., Geraci, B., Sirkin, M.: The genvoca model of software-system generators. IEEE Software 11(5) (1994)
Eichberg, M., Mezini, M., Ostermann, K., Schäfer, T.: Xirc: A kernel for cross-artifact information engineering in software development environments. In: Werner, B. (ed.) Eleventh Working Conference on Reverse Engineering, Delft, Netherlands, November 2004, pp. 182–191. IEEE Computer Society Press, Los Alamitos (2004)
Garlan, D., Kaiser, G.E., Notkin, D.: Using tool abstraction to compose systems. Computer 25(6), 30–38 (1992)
Hudak, P.: Building domain-specific embedded languages. ACM Comput. Surv. 28(4es), 196 (1996)
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, p. 327. Springer, Heidelberg (2001)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Mezini, M., Ostermann, K.: Integrating independent components with on-demand remodularization. In: Proceedings of OOPSLA 2002, Seattle, USA (2002)
Mezini, M., Ostermann, K.: Conquering aspects with Caesar. In: Proc. International Conference on Aspect-Oriented Software Development (AOSD 2003), Boston, USA (2003)
Mezini, M., Ostermann, K.: Variability management with feature-oriented programming and aspects. In: FSE (2004) (to appear)
Ostermann, K., Mezini, M., Bockisch, C.: Expressive pointcuts for increased modularity. In: Black, A.P. (ed.) ECOOP 2005, vol. 3586, pp. 214–240. Springer, Heidelberg (2005)
Parnas, D.L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM 15(12), 1053–1058 (1972)
Smaragdakis, Y., Batory, D.: Implementing layered designs with mixin layers. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 550–570. Springer, Heidelberg (1998)
Völter, M.: A collection of patterns for program generation. In: Proceedings EuroPLoP 2003 (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Mezini, M., Ostermann, K. (2005). A Comparison of Program Generation with Aspect-Oriented Programming. In: Banâtre, JP., Fradet, P., Giavitto, JL., Michel, O. (eds) Unconventional Programming Paradigms. UPP 2004. Lecture Notes in Computer Science, vol 3566. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11527800_26
Download citation
DOI: https://doi.org/10.1007/11527800_26
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-27884-9
Online ISBN: 978-3-540-31482-0
eBook Packages: Computer ScienceComputer Science (R0)