{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,19]],"date-time":"2026-02-19T13:56:07Z","timestamp":1771509367618,"version":"3.50.1"},"reference-count":52,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2014,2,1]],"date-time":"2014-02-01T00:00:00Z","timestamp":1391212800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100001659","name":"Deutsche Forschungsgemeinschaft","doi-asserted-by":"publisher","id":[{"id":"10.13039\/501100001659","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100002347","name":"Bundesministerium f\u00fcr Bildung und Forschung","doi-asserted-by":"publisher","id":[{"id":"10.13039\/501100002347","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/501100002850","name":"Fondo Nacional de Desarrollo Cient\u00edfico y Tecnol\u00f3gico","doi-asserted-by":"publisher","id":[{"id":"10.13039\/501100002850","id-type":"DOI","asserted-by":"publisher"}]},{"name":"Hessian LOEWE excellence initiative within CASED"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2014,2]]},"abstract":"<jats:p>In current aspect-oriented systems, aspects usually carry, through their pointcuts, explicit references to the base code. Those references are fragile and hinder important software engineering properties such as modular reasoning and independent evolution of aspects and base code. In this work, we introduce a novel abstraction called Join Point Interface, which, by design, aids modular reasoning and independent evolution by decoupling aspects from base code and by providing a modular type-checking algorithm. Join point interfaces can be used both with implicit announcement through pointcuts, and with explicit announcement, using closure join points. Join point interfaces further offer polymorphic dispatch on join points, with an advice-dispatch semantics akin to multimethods. To support flexible join point matching, we incorporate into our language an earlier proposal for generic advice, and introduce a mechanism for controlled global quantification. We motivate each language feature in detail, showing that it is necessary to obtain a language design that is both type safe and flexible enough to support typical aspect-oriented programming idioms. We have implemented join point interfaces as an open-source extension to AspectJ. A case study on existing aspect-oriented programs supports our design, and in particular shows the necessity of both generic interfaces and some mechanism for global quantification.<\/jats:p>","DOI":"10.1145\/2559933","type":"journal-article","created":{"date-parts":[[2014,2,18]],"date-time":"2014-02-18T14:08:32Z","timestamp":1392732512000},"page":"1-41","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":24,"title":["Join point interfaces for safe and flexible decoupling of aspects"],"prefix":"10.1145","volume":"23","author":[{"given":"Eric","family":"Bodden","sequence":"first","affiliation":[{"name":"Technische Universit\u00e4t Darmstadt, Germany"}]},{"given":"\u00c9ric","family":"Tanter","sequence":"additional","affiliation":[{"name":"University of Chile, Santiago, Chile"}]},{"given":"Milton","family":"Inostroza","sequence":"additional","affiliation":[{"name":"University of Chile, Santiago, Chile"}]}],"member":"320","published-online":{"date-parts":[[2014,2,20]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1007\/11531142_7"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1052898.1052906"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1960275.1960293"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1960275.1960291"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.5555\/1883978.1884007"},{"key":"e_1_2_1_6_1","volume-title":"Proceedings of the ECOOP Workshop on Analysis of Aspect-Oriented Software.","author":"Clement A.","unstructured":"A. Clement , A. Colyer , and M. Kersten . 2003. Aspect-oriented programming with ajdt . In Proceedings of the ECOOP Workshop on Analysis of Aspect-Oriented Software. A. Clement, A. Colyer, and M. Kersten. 2003. Aspect-oriented programming with ajdt. In Proceedings of the ECOOP Workshop on Analysis of Aspect-Oriented Software."},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2006.02.009"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353181"},{"key":"e_1_2_1_9_1","volume-title":"Proceedings of the 24th European Conference on Object-Oriented Programming (ECOOP'10)","author":"De Fraine B.","unstructured":"B. De Fraine , E. Ernst , and M. S\u00fcdholt . 2010. Essential aop: The a calculus . In Proceedings of the 24th European Conference on Object-Oriented Programming (ECOOP'10) . 101--125. B. De Fraine, E. Ernst, and M. S\u00fcdholt. 2010. Essential aop: The a calculus. In Proceedings of the 24th European Conference on Object-Oriented Programming (ECOOP'10). 101--125."},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1353482.1353491"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2006.01.003"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2162049.2162067"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1297027.1297029"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03013-0_26"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2004.1270763"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICPC.2011.11"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2162010.2162020"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/1960275.1960303"},{"key":"e_1_2_1_19_1","volume-title":"Proceedings of the Workshop on Advanced Separation of Concerns.","author":"Gudmundson S.","unstructured":"S. Gudmundson and G. Kiczales . 2001. Addressing practical software development issues in aspectj with a pointcut interface . In Proceedings of the Workshop on Advanced Separation of Concerns. S. Gudmundson and G. Kiczales. 2001. Addressing practical software development issues in aspectj with a pointcut interface. In Proceedings of the Workshop on Advanced Separation of Concerns."},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/643603.643610"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/976270.976276"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1294325.1294335"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491509.2491516"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/503502.503505"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2025113.2025205"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2006.02.008"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2009.37"},{"key":"e_1_2_1_28_1","doi-asserted-by":"crossref","unstructured":"G.\n      Kiczales E.\n      Hilsdale J.\n      Hugunin M.\n      Kersten J.\n      Palm and \n      W.\n      Griswold\n  . \n  2001\n  . An overview of aspectj. In Proceedings of the 15th European Conference on Object-Oriented Programming (ECOOP'01). J. L. Knudsen Ed. Lecture Notes in Computer Science vol. \n  2072 Springer 327--353.   G. Kiczales E. Hilsdale J. Hugunin M. Kersten J. Palm and W. Griswold. 2001. An overview of aspectj. In Proceedings of the 15 th European Conference on Object-Oriented Programming (ECOOP'01). J. L. Knudsen Ed. Lecture Notes in Computer Science vol. 2072 Springer 327--353.","DOI":"10.1007\/3-540-45337-7_18"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0053381"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1062455.1062482"},{"key":"e_1_2_1_31_1","volume-title":"AspectJ in Action: Practical Aspect-Oriented Programming","author":"Laddad R.","unstructured":"R. Laddad . 2003. AspectJ in Action: Practical Aspect-Oriented Programming . Manning Press . R. Laddad. 2003. AspectJ in Action: Practical Aspect-Oriented Programming. Manning Press."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/62083.62113"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629606"},{"key":"e_1_2_1_34_1","doi-asserted-by":"crossref","unstructured":"H.\n      Masuhara G.\n      Kiczales and \n      C.\n      Dutchyn\n  . \n  2003\n  . A compilation and optimization model for aspect-oriented programs. In Proceedings of the 12th International Conference on Compiler Construction (CC'03). G. Hedin Ed. Lecture Notes in Computer Science vol. \n  2622 Springer 46--60.   H. Masuhara G. Kiczales and C. Dutchyn. 2003. A compilation and optimization model for aspect-oriented programs. In Proceedings of the 12 th International Conference on Compiler Construction (CC'03). G. Hedin Ed. Lecture Notes in Computer Science vol. 2622 Springer 46--60.","DOI":"10.1007\/3-540-36579-6_4"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1086365.1086405"},{"key":"e_1_2_1_36_1","volume-title":"Scala: A Comprehensive Step-by-Step Guide","author":"Odersky M.","year":"2008","unstructured":"M. Odersky , L. Spoon , and B. Venners . 2008 . Programming in Scala: A Comprehensive Step-by-Step Guide . Artima Inc . M. Odersky, L. Spoon, and B. Venners. 2008. Programming in Scala: A Comprehensive Step-by-Step Guide. Artima Inc."},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1119655.1119664"},{"key":"e_1_2_1_38_1","volume-title":"1993. Object-Oriented Programming: The CLOS Perspective","author":"Paepcke A.","unstructured":"A. Paepcke , Ed. 1993. Object-Oriented Programming: The CLOS Perspective . MIT Press . A. Paepcke, Ed. 1993. Object-Oriented Programming: The CLOS Perspective. MIT Press."},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/361598.361623"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-70592-5_8"},{"key":"e_1_2_1_41_1","first-page":"513","article-title":"Types, abstraction, and parametric polymorphism","volume":"83","author":"Reynolds J. C.","year":"1983","unstructured":"J. C. Reynolds . 1983 . Types, abstraction, and parametric polymorphism . Inf. Process. 83 , 513 -- 523 . J. C. Reynolds. 1983. Types, abstraction, and parametric polymorphism. Inf. Process. 83, 513--523.","journal-title":"Inf. Process."},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/355045.355046"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167473.1167514"},{"key":"e_1_2_1_44_1","unstructured":"F. Steimann. 2013. Personal communication.  F. Steimann. 2013. Personal communication."},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/1767751.1767752"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.2005.99"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1824760.1824762"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/1739230.1739236"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1007\/11821946_15"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/1868294.1868311"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/1739230.1739233"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/1018203.1018208"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2559933","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2559933","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T08:10:25Z","timestamp":1750234225000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2559933"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,2]]},"references-count":52,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2014,2]]}},"alternative-id":["10.1145\/2559933"],"URL":"https:\/\/doi.org\/10.1145\/2559933","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2014,2]]},"assertion":[{"value":"2012-05-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-01-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2014-02-20","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}