skip to main content
survey

A Taxonomy of Domain-Specific Aspect Languages

Authors Info & Claims
Published:17 February 2015Publication History
Skip Abstract Section

Abstract

Domain-Specific Aspect Languages (DSALs) are Domain-Specific Languages (DSLs) designed to express crosscutting concerns. Compared to DSLs, their aspectual nature greatly amplifies the language design space. We structure this space in order to shed light on and compare the different domain-specific approaches to deal with crosscutting concerns. We report on a corpus of 36 DSALs covering the space, discuss a set of design considerations, and provide a taxonomy of DSAL implementation approaches. This work serves as a frame of reference to DSAL and DSL researchers, enabling further advances in the field, and to developers as a guide for DSAL implementations.

References

  1. Michael Achenbach and Klaus Ostermann. 2010a. A meta-aspect protocol for developing dynamic analyses. In Runtime Verification, Howard Barringer, Ylies Falcone, Bernd Finkbeiner, Klaus Havelund, Insup Lee, Gordon Pace, Grigore Rosu, Oleg Sokolsky, and Nikolai Tillmann (Eds.). Lecture Notes in Computer Science, Vol. 6418. Springer-Verlag, Berlin, 153--167. DOI:http://dx.doi.org/10.1007/978-3-642-16612-9_13 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Michael Achenbach and Klaus Ostermann. 2010b. Growing a dynamic aspect language in ruby. In Proceedings of the 5th Domain-Specific Aspect Languages Workshop at AOSD 2010 (DSAL'10).Google ScholarGoogle Scholar
  3. Tony Andrews, Francisco Curbera, Hitesh Dholakia, Yaron Goland, Johannes Klein, Frank Leymann, Kevin Liu, Dieter Roller, Doug Smith, Satish Thatte, Ivana Trickovic, and Sanjiva Weerawarana. 2003. Business Process Execution Language for Web Services Specification. Technical Report. BEA Systems, International Business Machines Corporation, Microsoft Corporation, SAP AG, Siebel Systems.Google ScholarGoogle Scholar
  4. Yoav Apter, David H. Lorenz, and Oren Mishali. 2012. A debug interface for debugging multiple domain specific aspect languages. In Proceedings of the 11th Annual International Conference on Aspect-Oriented Software Development (AOSD'12). ACM, New York, NY, 47--58. DOI:http://dx.doi.org/ 10.1145/2162049.2162056 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Toheed Aslam, Jesse Doherty, Anton Dubrau, and Laurie Hendren. 2010. AspectMatlab: An aspect-oriented scientific programming language. In Proceedings of the 9th International Conference on Aspect-Oriented Software Development (AOSD'10). ACM, New York, NY, 181--192. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Ali Assaf and Jacques Noyé. 2008. Dynamic AspectJ. In Proceedings of the 2008 Symposium on Dynamic Languages (DLS'08). ACM, New York, NY, Article 8 (2008), 12 pages. DOI:http://dx.doi.org/ 10.1145/1408681.1408689 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Pavel Avgustinov, Aske Christensen, Laurie Hendren, Sascha Kuzins, Jennifer Lhoták, Ondřej Lhoták, Oege de Moor, Damien Sereni, Ganesh Sittampalam, and Julian Tibble. 2006. abc: An extensible AspectJ compiler. In Transactions on Aspect-Oriented Software Development I, Awais Rashid and Mehmet Aksit (Eds.). Lecture Notes in Computer Science, Vol. 3880. Springer-Verlag, Berlin, 293--334. DOI:http://dx.doi.org/10.1007/11687061_9 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Pavel Avgustinov, Torbjörn Ekman, and Julian Tibble. 2008. Modularity first: A case for mixing AOP and attribute grammars. In Proceedings of the 7th International Conference on Aspect-Oriented Software Development (AOSD'08). ACM, New York, NY, 25--35. DOI:http://dx.doi.org/10.1145/1353482.1353486 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Anya Helene Bagge, Valentin David, Magne Haveraaen, and Karl Trygve Kalleberg. 2006. Stayin' alert:: Moulding failure and exceptions to your needs. In Proceedings of the 5th International Conference on Generative Programming and Component Engineering (GPCE'06). ACM, New York, NY, 265--274. DOI:http://dx.doi.org/10.1145/1173706.1173747 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Jason Baker and Wilson Hsieh. 2002. Runtime aspect weaving through metaprogramming. In Proceedings of the 1st International Conference on Aspect-Oriented Software Development (AOSD'02). ACM, New York, NY, 86--95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Anindya Basu. 1997. A Language-Based Approach to Protocol Construction. Ph.D. dissertation. Cornell University, Ithaca, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Lodewijk Bergmans and Mehmet Aksit. 2001. Composing crosscutting concerns using composition filters. Commun. ACM 44, 10 (Oct. 2001), 51--57. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Eric Bodden. 2005. Concern Specific Languages and their implementation with abc. In Proceedings of the Software-Engineering Properties of Languages and Aspect Technologies workshop (SPLAT!) at the 4th International Conference on Aspect-Oriented Software Development. (March 2005).Google ScholarGoogle Scholar
  14. Eric Bodden and Klaus Havelund. 2008. Racer: Effective race detection using AspectJ. In Proceedings of the 2008 International Symposium on Software Testing and Analysis (ISSTA'08). ACM, New York, NY, 155--166. DOI:http://dx.doi.org/10.1145/1390630.1390650 Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Mathieu Braem, Niels Joncheere, Wim Vanderperren, Ragnhild Van Der Straeten, and Viviane Jonckers. 2007. Concern-specific languages in a visual web service creation environment. Electron. Notes Theor. Comput. Sci. 163, 2 (April 2007), 3--17. DOI:http://dx.doi.org/DOI: 10.1016/j.entcs.2006.10.012 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Mathieu Braem, Kris Verlaenen, Niels Joncheere, Wim Vanderperren, Ragnhild Straeten, Eddy Truyen, Wouter Joosen, and Viviane Jonckers. 2006. Isolating process-level concerns using padus. In Business Process Management, Schahram Dustdar, JosLuiz Fiadeiro, and AmitP. Sheth (Eds.). Lecture Notes in Computer Science, Vol. 4102. Springer-Verlag, Berlin, 113--128. DOI:http://dx.doi.org/ 10.1007/11841760_9 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Bravenboer and E. Visser. 2004. Concrete syntax for objects: Domain-specific language embedding and assimilation without restrictions. In Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'04). ACM , New York, NY, 365--383. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. David Bruce. 1997. What makes a good domain-specific language? APOSTLE, and its approach to parallel discrete event simulation. In DSL'97—First ACM SIGPLAN Workshop on Domain-Specific Languages, in Association with POPL'97. 17--35. University of Illinois Computer Science Report.Google ScholarGoogle Scholar
  19. M. Bruntink, A. van Deursen, and T. Tourwe. 2005. Isolating idiomatic crosscutting concerns. In Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM'05). IEEE Computer Society, Los Alamitos, CA, 37--46. DOI:http://dx.doi.org/10.1109/ICSM.2005.57 Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Joao Cardoso, Pedro Diniz, Miguel P. Monteiro, João M. Fernandes, and João Saraiva. 2010. A domain-specific aspect language for transforming MATLAB programs. In Proceedings of the 5th Domain-Specific Aspect Languages Workshop at AOSD 2010 (DSAL'10).Google ScholarGoogle Scholar
  21. João M. P. Cardoso, Tiago Carvalho, José G. F. Coutinho, Wayne Luk, Ricardo Nobre, Pedro Diniz, and Zlatko Petrov. 2012. LARA: An aspect-oriented programming language for embedded systems. In Proceedings of the 11th Annual International Conference on Aspect-Oriented Software Development (AOSD'12). ACM, New York, NY, 179--190. DOI:http://dx.doi.org/10.1145/2162049.2162071 Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Denis Caromel, Luis Mateu, Guillaume Pothier, and Éric Tanter. 2008. Parallel object monitors. Concurrency Comput.: Pract. Exper. 20, 12 (Aug. 2008), 1387--1417. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Denis Caromel, Luis Mateu, and Éric Tanter. 2004. Sequential object monitors. In ECOOP 2004—Object-Oriented Programming, Martin Odersky (Ed.). Lecture Notes in Computer Science, Vol. 3086. Springer-Verlag, Berlin, 316--340.Google ScholarGoogle Scholar
  24. Andrew Casey, Jun Li, Jesse Doherty, Maxime Chevalier-Boisvert, Toheed Aslam, Anton Dubrau, Nurudeen Lameed, Amina Aslam, Rahul Garg, Soroush Radpour, Olivier Savary Belanger, Laurie Hendren, and Clark Verbrugge. 2010. McLab: An extensible compiler toolkit for MATLAB and related languages. In Proceedings of the Third C* Conference on Computer Science and Software Engineering (C3S2E'10). ACM, New York, NY, 114--117. DOI:http://dx.doi.org/10.1145/1822327.1822343 Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Anis Charfi and Mira Mezini. 2007. AO4BPEL: An aspect-oriented extension to BPEL. World Wide Web 10, 3 (Sept. 2007), 309--344. DOI:http://dx.doi.org/10.1007/s11280-006-0016-3 Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Panos K. Chrysanthis and Krithi Ramamritham. 1991. A formalism for extended transaction models. In Proceedings of the 17th International Conference on Very Large Data Bases (VLDB'91). Morgan Kaufmann, Burlington, MA, 103--112. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Thomas Cleenewerck, Jacques Noyé, Johan Fabry, Anne-Françoise Le Meur, and Éric Tanter. 2008. Summary of the third workshop on domain-specific aspect languages. In Proceedings of the 2008 AOSD Workshop on Domain-Specific Aspect Languages (DSAL'08). ACM, New York, NY, 1--5. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Pierre-Charles David, Thomas Ledoux, and Noury M. Bouraqadi-Sadani. 2001. Two-step weaving with reflection using AspectJ. In Proceedings of the OOPSLA 2001 Workshop on Advanced Separation of Concerns in Object-Oriented Systems. Retrieved from http://www.cs.ubc.ca/∼kdvolder/Workshops/ OOPSLA2001/submissions/02-david.pdf.Google ScholarGoogle Scholar
  29. Kris De Volder and Theo D'Hondt. 1999. Aspect-oriented logic meta programming. In Meta-Level Architectures and Reflection, Pierre Cointe (Ed.). Lecture Notes in Computer Science, Vol. 1616. Springer-Verlag, Berlin, 250--272. DOI:http://dx.doi.org/10.1007/3-540-48443-4_22 Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Jessie Dedecker, Tom Van Cutsem, Stijn Mostinckx, Theo DHondt, and Wolfgang De Meuter. 2006. Ambient-oriented programming in AmbientTalk. In ECOOP 2006—Object-Oriented Programming, Dave Thomas (Ed.). Lecture Notes in Computer Science, Vol. 4067. Springer-Verlag, Berlin, 230--254. DOI:http://dx.doi.org/10.1007/11785477_16 Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Edsger W. Dijkstra. 1982. Selected writings on Computing: A Personal Perspective. Springer-Verlag, New York, NY, 60--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Tom Dinkelaker. 2011a. AO4SQL: Towards an aspect-oriented extension for SQL. In Proceedings of the 8th Workshop on Reflection, AOP and Meta-Data for Software Evolution (RAM-SE'11).Google ScholarGoogle Scholar
  33. Tom Dinkelaker. 2011b. Reflective Embedding of Domain-Specific Languages. Ph.D. dissertation. Technische Universität Darmstadt, Darmstadt, Germany.Google ScholarGoogle Scholar
  34. Tom Dinkelaker, Michael Eichberg, and Mira Mezini. 2010. An architecture for composing embedded domain-specific languages. In Proceedings of the 9th International Conference on Aspect-Oriented Software Development (AOSD'10). ACM, New York, NY, 49--60. DOI:http://dx.doi.org/10.1145/1739230.1739237 Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Tom Dinkelaker, Michael Eichberg, and Mira Mezini. 2013. Incremental concrete syntax for embedded languages with support for separate compilation. Science of Computer Programming 78, 6 (June 2013), 615--632. DOI:http://dx.doi.org/10.1016/j.scico.2012.12.002 Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Tom Dinkelaker, Mohammed Erradi, and Meryeme Ayache. 2012. Using aspect-oriented state machines for detecting and resolving feature interactions. Comput. Sci. Inf. Syst. 9, 3 (2012), 1045--1074.Google ScholarGoogle ScholarCross RefCross Ref
  37. Tom Dinkelaker and Mira Mezini. 2008. Dynamically linked domain-specific extensions for advice languages. In Proceedings of the 2008 AOSD Workshop on Domain-Specific Aspect Languages (DSAL'08). ACM, New York, NY, Article 3, (2008) 7 pages. DOI:http://dx.doi.org/10.1145/1404927.1404930 Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Tom Dinkelaker, Mira Mezini, and Christoph Bockisch. 2009. The art of the meta-aspect protocol. In Proceedings of the 8th ACM International Conference on Aspect-Oriented Software Development (AOSD'09). ACM, New York, NY, 51--62. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Jesse Doherty. 2010. (Oct. 2010). Personal communication.Google ScholarGoogle Scholar
  40. Rémi Douence, Pascal Fradet, and Mario Südholt. 2002. A framework for the detection and resolution of aspect interactions. In Proceedings of the 1st ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering (GPCE'02). Springer-Verlag, Berlin, 173--188. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Christopher Dutchyn, David B. Tucker, and Shriram Krishnamurthi. 2006. Semantics and scoping of aspects in higher-order languages. Sci. Comput. Prog. 63, 3 (Dec. 2006), 207--239. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Gary Duzan, Joseph Loyall, Richard Schantz, Richard Shapiro, and John Zinky. 2004. Building adaptive distributed applications with middleware and aspects. In Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD'04). ACM, New York, NY, 66--73. DOI:http://dx.doi.org/10.1145/976270.976280 Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Torbjörn Ekman and Görel Hedin. 2007. The JastAdd extensible Java compiler. In Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications (OOPSLA'07). ACM, New York, NY, 1--18. DOI:http://dx.doi.org/10.1145/1297027.1297029 Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Patrick Eugster and K.R. Jayaram. 2009. EventJava: An extension of java for event correlation. In ECOOP 2009—Object-Oriented Programming, Sophia Drossopoulou (Ed.). Lecture Notes in Computer Science, Vol. 5653. Springer-Verlag, Berlin, 570--594. DOI:http://dx.doi.org/10.1007/978-3-642-03013-0_26 Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Johan Fabry, Éric Tanter, and Theo D'Hondt. 2008. KALA: Kernel aspect language for advanced transactions. Sci. Comput. Prog. 71, 3 (May 2008), 165--180. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. J. Fabry, E. Tanter, and T. D'Hondt. 2009. Infrastructure for domain-specific aspect languages: The ReLAx case study. IET Software 3, 3 (June 2009), 238--254. DOI:http://dx.doi.org/10.1049/iet-sen.2007.0120Google ScholarGoogle ScholarCross RefCross Ref
  47. Marc Fleury and Francisco Reverbel. 2003. The JBoss extensible server. In Middleware 2003, Markus Endler and Douglas Schmidt (Eds.). Lecture Notes in Computer Science, Vol. 2672. Springer-Verlag, Berlin, 344--373. DOI:http://dx.doi.org/10.1007/3-540-44892-6_18 Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Martin Fowler. 2010. Domain-Specific Languages. Addison-Wesley Professional, Boston, MA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Pascal Fradet and Mario Südholt. 1999. An aspect language for robust programming. In Proceedings of the International Workshop on Aspect-Oriented Programming at ECOOP'99. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Debasish Ghosh. 2010. DSLs in Action. Manning, Shelter Island, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Elisa Gonzalez Boix, Thomas Cleenewerk, Jessie Dedecker, and Wolfgang De Meuter. 2008. Towards a domain-specific aspect language for leasing in mobile ad hoc networks. In Proceedings of the 2008 AOSD Workshop on Domain-Specific Aspect Languages (DSAL'08). ACM, New York, NY, Article 6, 5 pages. DOI:http://dx.doi.org/10.1145/1404927.1404933 Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Jan Hannemann and Gregor Kiczales. 2002. Design pattern implementation in Java and AspectJ. SIGPLAN Not. 37, 11 (Nov. 2002), 161--173. DOI:http://dx.doi.org/10.1145/583854.582436 Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. William Harrison, Harold Ossher, and Peri Tarr. 2002. Asymmetrically vs. Symmetrically Organized Paradigms for Software Composition. Technical Report RC22685. IBM Research Division.Google ScholarGoogle Scholar
  54. M. Haupt, C. Gibbs, B. Adams, S. Timbermont, Y. Coady, and R. Hirschfeld. 2009. Disentangling virtual machine architecture. IET Software, 3, 3 (June 2009), 201--218. DOI:http://dx.doi.org/ 10.1049/iet-sen.2007.0121Google ScholarGoogle ScholarCross RefCross Ref
  55. Wilke Havinga, Lodewijk Bergmans, and Mehmet Aksit. 2008. Prototyping and composing aspect languages. In ECOOP 2008—Object-Oriented Programming, Jan Vitek (Ed.), Lecture Notes in Computer Science, Vol. 5142. Springer-Verlag, Berlin, 180--206. DOI:http://dx.doi.org/10.1007/978-3-540-70592-5_9 Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Jan Heering and Marjan Mernik. 2007. Domain-Specific Languages in Perspective. Technical Report SEN-E0702. CWI, Amsterdam, The Netherlands. Retrieved from from http://oai.cwi.nl/oai/asset/12319/ 12319D.pdf.Google ScholarGoogle Scholar
  57. Erik Hilsdale and Jim Hugunin. 2004. Advice weaving in AspectJ. In Proceedings of the 3rd International Conference on Aspect-Oriented Software Development (AOSD'04). ACM, New York, NY, 26--35. DOI:http://dx.doi.org/10.1145/976270.976276 Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Robert Hirschfeld. 2003. AspectS—Aspect-oriented programming with squeak. In Objects, Components, Architectures, Services, and Applications for a Networked World, Mehmet Aksit, Mira Mezini, and Rainer Unland (Eds.). Lecture Notes in Computer Science, Vol. 2591. Springer-Verlag, Berlin, 216--232. DOI:http://dx.doi.org/10.1007/3-540-36557-5_17 Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Christian Hofer, Klaus Ostermann, Tillmann Rendel, and Adriaan Moors. 2008. Polymorphic embedding of DSLs. In Proceedings of the 7th International Conference on Generative Programming and Component Engineering (GPCE'08). ACM Press, New York, NY, 137--148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Keiji Hokamura, Naoyasu Ubayashi, Shin Nakajima, and Akihito Iwai. 2008. Aspect-oriented programming for web controller layer. Asia-Pacific Software Engineering Conference 0 (2008), 529--536. DOI:http://dx.doi.org/10.1109/APSEC.2008.69 Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Adrian Holzer, Lukasz Ziarek, K.R. Jayaram, and Patrick Eugster. 2011. Putting events in context: Aspects for event-based distributed programming. In Proceedings of the 10th International Conference on Aspect-Oriented Software Development (AOSD'11). ACM Press, New York, NY, 241--252. DOI:http://dx.doi.org/10.1145/1960275.1960304 Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Michihiro Horie and Shigeru Chiba. 2010. Tool support for crosscutting concerns of API documentation. In Proceedings of the 9th International Conference on Aspect-Oriented Software Development (AOSD'10). ACM Press, New York, NY, 97--108. DOI:http://dx.doi.org/10.1145/1739230.1739242 Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Paul Hudak. 1996. Building domain-specific embedded languages. Comput. Surveys 28, 4es (Dec. 1996). Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. John Irwin, Jean-Marc Loingtier, JohnR. Gilbert, Gregor Kiczales, John Lamping, Anurag Mendhekar, and Tatiana Shpeisman. 1997. Aspect-oriented programming of sparse matrix code. In Scientific Computing in Object-Oriented Parallel Environments, Yutaka Ishikawa, Rodney R. Oldehoeft, John V. W. Reynders, and Marydell Tholburn (Eds.). Lecture Notes in Computer Science, Vol. 1343. Springer-Verlag, Berlin, Heidelberg, 249--256. DOI:http://dx.doi.org/10.1007/3-540-63827-X_68 Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Karl Trygve Kalleberg and Eelco Visser. 2006. Combining aspect-oriented and strategic programming. Electronic Notes Theor. Comput. Sci. 147, 1 (January 2006), 5--30. DOI:http://dx.doi.org/10.1016/j.entcs. 2005.06.035 Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. G. Kiczales, J. Des Rivieres, and D.G. Bobrow. 1991. The Art of the Metaobject Protocol. The MIT Press, Cambridge, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Gregor Kiczales, Erik Hilsdale, Jim Hugunin, Mik Kersten, Jeffrey Palm, and WilliamG. Griswold. 2001. An overview of AspectJ. In ECOOP 2001—Object-Oriented Programming, Jørgen Lindskov Knudsen (Ed.). Lecture Notes in Computer Science, Vol. 2072. Springer-Verlag, Berlin, 327--354. DOI:http://dx.doi.org/10.1007/3-540-45337-7_18 Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Lopes, Jean-Marc Loingtier, and John Irwin. 1997. Aspect-oriented programming. In ECOOP'97—Object-Oriented Programming, Mehmet Aksit and Satoshi Matsuoka (Eds.). Lecture Notes in Computer Science, Vol. 1241. Springer-Verlag, Berlin, 220--242. DOI:http://dx.doi.org/10.1007/BFb0053381Google ScholarGoogle Scholar
  69. Paul Klint, Tijs Storm, and Jurgen Vinju. 2005. Term rewriting meets aspect-oriented programming. In Processes, Terms and Cycles: Steps on the Road to Infinity, Aart Middeldorp, Vincent Oostrom, Femke Raamsdonk, and Roel Vrijer (Eds.). Lecture Notes in Computer Science, Vol. 3838. Springer-Verlag, Berlin, 88--105. DOI:http://dx.doi.org/10.1007/11601548_8 Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. Sergei Kojarski and David H. Lorenz. 2004. AOP as a first class reflective mechanism. In OOPSLA Companion (OOPSLA'04), John M. Vlissides and Douglas C. Schmidt (Eds.). ACM, New York, NY, 216--217. DOI:http://dx.doi.org/10.1145/1028664.1028757 Google ScholarGoogle ScholarDigital LibraryDigital Library
  71. Sergei Kojarski and David H. Lorenz. 2005. Pluggable AOP: Designing aspect mechanisms for third-party composition. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'05). ACM, New York, NY, 247--263. DOI:http://dx.doi.org/10.1145/1094811.1094831 Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. Sergei Kojarski and David H. Lorenz. 2007. Awesome: An aspect co-weaving system for composing multiple aspect-oriented extensions. In Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications (OOPSLA'07). ACM, New York, NY, 515--534. DOI:http://dx.doi.org/10.1145/1297027.1297065 Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. Dierk König, Aandrew Glover, Paul King, Guillaume Laforge, and Jon Skeet. 2007. Groovy in Action. Manning, Shelter Island, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. T. Kosar, M. López, E. Pablo, P.A. Barrientos, and M. Mernik. 2008. A preliminary study on various implementation approaches of domain-specific language. Inf. Softw. Technol. 50, 5 (April 2008), 390--405. Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. Toma Kosar, Marjan Mernik, and Jeffrey C. Carver. 2012. Program comprehension of domain-specific and general-purpose languages: Comparison using a family of experiments. Empirical Softw. Eng. 17, 3 (2012), 276--304. DOI:http://dx.doi.org/10.1007/s10664-011-9172-x Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. Tomaž Kosar, Marjan Mernik, João Maria Pereira, Varanda, Matej Črepinšek, Daniela Da Cruz, and Rangel Pedro Henriques. 2010. Comparing general-purpose and domain-specific languages: An empirical study. Comput. Sci. Inf. Syst. 7, 2 (2010), 247--264.Google ScholarGoogle ScholarCross RefCross Ref
  77. Cristina Videira Lopes and Trung Chi Ngo. 2004. The Aspect Markup Language and Its Support of Aspect Plugins. ISR Technical Report UCI-ISR-04-8. University of California, Irvine.Google ScholarGoogle Scholar
  78. Cristina Videira Lopes. 1997. D: A Language Framework for Distributed Programming. Ph.D. dissertation. College of Computer Science of Northeastern University, Boston, MA.Google ScholarGoogle Scholar
  79. David Lorenz and Sergei Kojarski. 2007. Understanding aspect interactions, co-advising and foreign advising. In Proceedings of the Second International Workshop on Aspects, Dependencies and Interactions at ECOOP07, Frans Sanen, Ruzanna Chitchyan, Lodewijk Bergmans, Johan Fabry, and Mario Südholt (Eds.). Technical Report CW 497. Katholieke Universiteit Leuven, Leuven, 23--28.Google ScholarGoogle Scholar
  80. David H. Lorenz. 2012. Language-oriented modularity through awesome DSALs: Summary of invited talk. In Proceedings of the Seventh Workshop on Domain-Specific Aspect Languages (DSAL'12). ACM, New York, NY, 1--2. DOI:http://dx.doi.org/10.1145/2162037.2162039 Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. David H. Lorenz and Oren Mishali. 2012. SPECTACKLE: Toward a specification-based DSAL composition process. In Proceedings of the Seventh Workshop on Domain-Specific Aspect Languages (DSAL'12). ACM, New York, NY, 9--14. DOI:http://dx.doi.org/10.1145/2162037.2162042 Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. Lukáš Marek, Alex Villazón, Yudi Zheng, Danilo Ansaloni, Walter Binder, and Zhengwei Qi. 2012. DiSL: A domain-specific language for bytecode instrumentation. In Proceedings of the 11th Annual International Conference on Aspect-Oriented Software Development (AOSD'12). ACM, New York, NY, 239--250. DOI:http://dx.doi.org/10.1145/2162049.2162077 Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Antoine Marot and Roel Wuyts. 2008. A DSL to declare aspect execution order. In Proceedings of the 2008 AOSD Workshop on Domain-Specific Aspect Languages (DSAL'08). ACM, New York, NY, Article 7, 5 pages. DOI:http://dx.doi.org/10.1145/1404927.1404934 Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. Hidehiko Masuhara, Yusuke Endoh, and Akinori Yonezawa. 2006. A fine-grained join point model for more reusable aspects. In Programming Languages and Systems, Naoki Kobayashi (Ed.). Lecture Notes in Computer Science, Vol. 4279. Springer-Verlag, Berlin, 131--147. DOI:http://dx.doi.org/10.1007/ 11924661_8 Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. Hidehiko Masuhara, Gregor Kiczales, and Chris Dutchyn. 2003. A compilation and optimization model for aspect-oriented programs. In Compiler Construction. CC'03, Grel Hedin (Ed.). Lecture Notes in Computer Science, Vol. 2622. Springer-Verlag, Berlin, Heidelberg, 46--60. DOI:http://dx.doi.org/10.1007/ 3-540-36579-6_4 Google ScholarGoogle ScholarDigital LibraryDigital Library
  86. Anurag Mendhekar, Gregor Kiczales, and John Lamping. 1997. RG: A Case-Study for Aspect-Oriented Programming. Technical Report SPL97-009. XEROX PARC.Google ScholarGoogle Scholar
  87. Marjan Mernik (Ed.). 2013. Formal and Practical Aspects of Domain-Specific Languages: Recent Developments. IGI Global, Hershey, PA.Google ScholarGoogle Scholar
  88. Marjan Mernik, Jan Heering, and Anthony M. Sloane. 2005. When and how to develop domain-specific languages. Comput. Surveys 37, 4 (Dec. 2005), 316--344. DOI:http://dx.doi.org/10.1145/1118890.1118892 Google ScholarGoogle ScholarDigital LibraryDigital Library
  89. Marjan Mernik, Mitja Lenič, Enis Avdičaušević, and Viljem Žumer. 2002. LISA: An interactive environment for programming language development. In Compiler Construction (CC'02), R. Nigel Horspool (Ed.). Lecture Notes in Computer Science, Vol. 2304. Springer-Verlag, Berlin, 1--4. DOI:http://dx.doi.org/10.1007/3-540-45937-5_1 Google ScholarGoogle ScholarDigital LibraryDigital Library
  90. Clint Morgan, Kris De Volder, and Eric Wohlstadter. 2007. A static aspect language for checking design rules. In Proceedings of the 6th International Conference on Aspect-Oriented Software Development (AOSD'07). ACM, New York, NY, 63--72. DOI:http://dx.doi.org/10.1145/1218563.1218571 Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. J. Munnelly and S. Clarke. 2008. A domain-specific language for ubiquitous healthcare. In Third International Conference on Pervasive Computing and Applications, 2008 (ICPCA'08), Vol. 2, 757--762. DOI:http://dx.doi.org/10.1109/ICPCA.2008.4783710Google ScholarGoogle ScholarCross RefCross Ref
  92. J. Noble, A. Schmidmeier, D. J. Pearce, and A. P. Black. 2007. Patterns of aspect-oriented design. In Proceedings of European Conference on Pattern Languages of Program (EuroPLoP'07), Lise B. Hvatum and Till Schümmer (Eds.). UVK--Universitaetsverlag Konstanz, Irsee, Germany.Google ScholarGoogle Scholar
  93. Amjad Nusayr and Jonathan Cook. 2009. 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 (DSAL'09). ACM, New York, NY, 7--10. DOI:http://dx.doi.org/10.1145/1509307.1509310 Google ScholarGoogle ScholarDigital LibraryDigital Library
  94. Nathaniel Nystrom, Michael R. Clarkson, and Andrew C. Myers. 2003. Polyglot: An extensible compiler framework for java. In Compiler Construction (CC'03), Görel Hedin (Ed.). Lecture Notes in Computer Science, Vol. 2622. Springer-Verlag, Berlin, 138--152. DOI:http://dx.doi.org/10.1007/3-540-36579-6_11 Google ScholarGoogle ScholarDigital LibraryDigital Library
  95. Harold Ossher and Peri Tarr. 2002. Multi-dimensional separation of concerns and the hyperspace approach. In Software Architectures and Component Technology, Mehmet Aksit (Ed.). The Springer International Series in Engineering and Computer Science, Vol. 648. Springer, New York, NY, 293--323. DOI:http://dx.doi.org/10.1007/978-1-4615-0883-0_10Google ScholarGoogle Scholar
  96. David L. Parnas. 1972. On the criteria for decomposing systems into modules. Commun. ACM 15, 12 (Dec. 1972), 1053--1058. Google ScholarGoogle ScholarDigital LibraryDigital Library
  97. T. J. Parr and R. W. Quong. 1995. ANTLR: A predicated-LL(k) parser generator. Software: Practice and Experience 25, 7 (July 1995), 789--810. DOI:http://dx.doi.org/10.1002/spe.4380250705 Google ScholarGoogle ScholarDigital LibraryDigital Library
  98. D. Rebernak, M. Mernik, H. Wu, and J. Gray. 2009. Domain-specific aspect languages for modularising crosscutting concerns in grammars. IET Software 3, 3 (June 2009), 184--200. DOI:http://dx.doi.org/ 10.1049/iet-sen.2007.0114Google ScholarGoogle ScholarCross RefCross Ref
  99. Lukas Renggli, Tudor Gîrba, and Oscar Nierstrasz. 2010. Embedding languages without breaking tools. In ECOOP 2010 Object-Oriented Programming, Theo D'Hondt (Ed.). Lecture Notes in Computer Science, Vol. 6183. Springer-Verlag, Berlin, 380--404. DOI:http://dx.doi.org/10.1007/978-3-642-14107-2_19 Google ScholarGoogle ScholarDigital LibraryDigital Library
  100. Walter A. Rolling. 1994. A preliminary annotated bibliography on domain engineering. SIGSOFT Softw. Eng. Notes 19, 3 (July 1994), 82--84. DOI:http://dx.doi.org/10.1145/182824.182844 Google ScholarGoogle ScholarDigital LibraryDigital Library
  101. J. L. Sobral, M. P. Monteiro, and C. A. Cunha. 2006. Aspect-oriented support for modular parallel computing. In Proceedings of the 5th AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software. 37--41.Google ScholarGoogle Scholar
  102. João L. Sobral and Miguel P. Monteiro. 2008. A domain-specific language for parallel and grid computing. In Proceedings of the 2008 AOSD Workshop on Domain-Specific Aspect Languages (DSAL'08). ACM Press, New York, NY, Article 2, 4 pages. DOI:http://dx.doi.org/10.1145/1404927.1404929 Google ScholarGoogle ScholarDigital LibraryDigital Library
  103. Paul Soule. 2010. Autonomics Development: A Domain-Specific Aspect Language Approach. Springer Basel, Basel. DOI:http://dx.doi.org/10.1007/978-3-0346-0540-3_3 Google ScholarGoogle ScholarDigital LibraryDigital Library
  104. Paul Soule, Tom Carnduff, and Stuart Lewis. 2007. A distribution definition language for the automated distribution of Java objects. In Proceedings of the 2nd Workshop on Domain Specific Aspect Languages (DSAL'07). ACM Press, New York, NY. DOI:http://dx.doi.org/10.1145/1255400.1255402 Google ScholarGoogle ScholarDigital LibraryDigital Library
  105. William Sousan, Victor Winter, Mansour Zand, and Harvey Siy. 2007. ERTSAL: A prototype of a domain-specific aspect language for analysis of embedded real-time systems. In Proceedings of the 2nd Workshop on Domain Specific Aspect Languages (DSAL'07). ACM, New York, NY, Article 1. DOI:http://dx.doi.org/10.1145/1255400.1255401 Google ScholarGoogle ScholarDigital LibraryDigital Library
  106. Johan J Sung and Karl Lieberherr. 2002. DAJ: A Case Study of Extending AspectJ. Technical Report NU-CCS-02-16. Northeastern University.Google ScholarGoogle Scholar
  107. Éric Tanter. 2004. From Metaobject Protocols to Versatile Kernels for Aspect-Oriented Programming. Ph.D. dissertation. University of Nantes and University of Chile, Nantes, France and Santiago, Chile.Google ScholarGoogle Scholar
  108. Éric Tanter. 2006. Aspects of composition in the Reflex AOP kernel. In Proceedings of the 5th International Symposium on Software Composition (SC 2006), Welf Löwe and Mario Südholt (Eds.). Lecture Notes in Computer Science, Vol. 4089. Springer-Verlag, Berlin, 98--113. Google ScholarGoogle ScholarDigital LibraryDigital Library
  109. Éric Tanter and Johan Fabry. 2009. Supporting composition of structural aspects in an AOP kernel. J. Univ. Comput. Sci. 15, 3 (2009), 620--647. DOI:http://dx.doi.org/10.3217/jucs-015-03-0620Google ScholarGoogle Scholar
  110. Éric Tanter and Jacques Noyé. 2005. A versatile kernel for multi-language AOP. In Proceedings of the 4th ACM SIGPLAN/SIGSOFT Conference on Generative Programming and Component Engineering (GPCE'05), Robert Glück and Mike Lowry (Eds.). Lecture Notes in Computer Science, Vol. 3676. Springer-Verlag, Berlin, 173--188. Google ScholarGoogle ScholarDigital LibraryDigital Library
  111. Éric Tanter, Jacques Noyé, Denis Caromel, and Pierre Cointe. 2003. Partial behavioral reflection: Spatial and temporal selection of reification. In Proceedings of the 18th ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA'03), Ron Crocker and Guy L. Steele, Jr. (Eds.). ACM, New York, NY, 27--46. Google ScholarGoogle ScholarDigital LibraryDigital Library
  112. Peri Tarr, Harold Ossher, William Harrison, and Stanley M. Sutton, Jr. 1999. N degrees of separation: Multi-dimensional separation of concerns. In Proceedings of the 21st International Conference on Software Engineering (ICSE'99). ACM, New York, NY, 107--119. Google ScholarGoogle ScholarDigital LibraryDigital Library
  113. Stijn Timbermont, Bram Adams, and Michael Haupt. 2008. Towards a DSAL for object layout in virtual machines. In Proceedings of the 2008 AOSD Workshop on Domain-Specific Aspect Languages (DSAL'08). ACM, New York, NY, Article 5, 4 pages. DOI:http://dx.doi.org/10.1145/1404927.1404932 Google ScholarGoogle ScholarDigital LibraryDigital Library
  114. Rodolfo Toledo and Éric Tanter. 2008. A lightweight and extensible AspectJ implementation. J. Univ. Comput. Sci. 14, 21 (2008), 3517--3533.Google ScholarGoogle Scholar
  115. Laurence Tratt. 2008. Domain specific language implementation via compile-time meta-programming. ACM Trans. Program. Lang. Syst. 30, 6 (Oct. 2008), 31:1--31:40. DOI:http://dx.doi.org/10.1145/ 1391956.1391958 Google ScholarGoogle ScholarDigital LibraryDigital Library
  116. Naoyasu Ubayashi, Hidehiko Masuhara, and Tetsuo Tamai. 2004. An AOP implementation framework for extending join point models. In Proceedings of the ECOOP Workshop on Reflection, AOP and Meta-Data for Software Evolution (RAM-SE04), Walter Cazzola, Shigeru Chiba, and Gunter Saake (Eds.). Oslo, Norway.Google ScholarGoogle Scholar
  117. M. G. J. van den Brand, A. van Deursen, J. Heering, H. A. de Jong, M. de Jonge, T. Kuipers, P. Klint, L. Moonen, P. A. Olivier, J. Scheerder, J. J. Vinju, E. Visser, and J. Visser. 2001. The ASF+SDF meta-environment: A component-based language development environment. In Compiler Construction (CC'01), Reinhard Wilhelm (Ed.). Lecture Notes in Computer Science, Vol. 2027. Springer-Verlag, Berlin, 365--370. DOI:http://dx.doi.org/10.1007/3-540-45306-7_26 Google ScholarGoogle ScholarDigital LibraryDigital Library
  118. Arie van Deursen and Paul Klint. 1998. Little languages: Little maintenance? J. Softw. Maint.: Res. Pract. 10, 2 (1998), 75--92. Google ScholarGoogle ScholarDigital LibraryDigital Library
  119. Arie van Deursen, Paul Klint, and Joost Visser. 2000. Domain-specific languages: An annotated bibliography. SIGPLAN Not. 35, 6 (June 2000), 26--36. DOI:http://dx.doi.org/10.1145/352029.352035 Google ScholarGoogle ScholarDigital LibraryDigital Library
  120. Eelco Visser. 2004. Program transformation with Stratego/XT: Rules, strategies, tools, and systems in StrategoXT-0.9. In Domain-Specific Program Generation, Lecture Notes in Computer Science, Vol. 3016. Springer-Verlag, Berlin, 216--238.Google ScholarGoogle Scholar
  121. C. Walls and R. Breidenbach. 2005. Spring in Action. Manning, Shelter Island, NY. Google ScholarGoogle ScholarDigital LibraryDigital Library
  122. D. Wampler. 2008. Aquarium: AOP in Ruby. In Proceedings of the 7th International Conference on Aspect-Oriented Software Development—Industry Track (AOSD'07). 60--67.Google ScholarGoogle Scholar
  123. Mitchell Wand, Gregor Kiczales, and Christopher Dutchyn. 2004. A semantics for advice and dynamic join points in aspect-oriented programming. ACM Trans. Prog. Lang. Syst. 26, 5 (Sept. 2004), 890--910. Google ScholarGoogle ScholarDigital LibraryDigital Library
  124. J. White and D. C. Schmidt. 2009. Automating deployment planning with an aspect weaver. IET Software, 3, 3 (June 2009), 167--183. DOI:http://dx.doi.org/10.1049/iet-sen.2007.0123Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. A Taxonomy of Domain-Specific Aspect Languages

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM Computing Surveys
      ACM Computing Surveys  Volume 47, Issue 3
      April 2015
      602 pages
      ISSN:0360-0300
      EISSN:1557-7341
      DOI:10.1145/2737799
      • Editor:
      • Sartaj Sahni
      Issue’s Table of Contents

      Copyright © 2015 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 17 February 2015
      • Accepted: 1 October 2014
      • Revised: 1 July 2014
      • Received: 1 March 2013
      Published in csur Volume 47, Issue 3

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • survey
      • Research
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader