{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,1,11]],"date-time":"2025-01-11T20:40:05Z","timestamp":1736628005789,"version":"3.32.0"},"publisher-location":"Berlin, Heidelberg","reference-count":40,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783540457787"},{"type":"electronic","value":"9783540462354"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2006]]},"DOI":"10.1007\/11877028_3","type":"book-chapter","created":{"date-parts":[[2006,11,2]],"date-time":"2006-11-02T13:27:39Z","timestamp":1162474059000},"page":"65-94","source":"Crossref","is-referenced-by-count":0,"title":["Program Transformation with Reflection and Aspect-Oriented Programming"],"prefix":"10.1007","author":[{"given":"Shigeru","family":"Chiba","sequence":"first","affiliation":[]}],"member":"297","reference":[{"key":"3_CR1","doi-asserted-by":"crossref","unstructured":"Bobrow, D.G., DeMichiel, L.G., Gabriel, R.P., Keene, S.E., Kiczales, G., Moon, D.A.: Common lisp object system specification. Sigplan Notices (1988) (X3J13 Document 88-002R)","DOI":"10.1145\/885631.885632"},{"key":"3_CR2","doi-asserted-by":"crossref","unstructured":"Bockisch, C., Haupt, M., Mezini, M., Ostermann, K.: Virtual machine support for dynamic join points. In: Proc. of Int\u2019l Conf. on Aspect-Oriented Software Development (AOSD 2004), pp. 83\u201392 (2004)","DOI":"10.1145\/976270.976282"},{"key":"3_CR3","first-page":"331","volume-title":"Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications","author":"G. Bracha","year":"2004","unstructured":"Bracha, G., Ungar, D.: Mirrors: design principles for meta-level facilities of object-oriented programming languages. In: Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pp. 331\u2013334. ACM, New York (2004)"},{"key":"3_CR4","unstructured":"Cazzola, W.: mcharm: Reflective middleware with a global view of communications. IEEE Distributed System On-Line 3 (2002)"},{"key":"3_CR5","series-title":"SIGPLAN Notices","doi-asserted-by":"publisher","first-page":"285","DOI":"10.1145\/217838.217868","volume-title":"Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications","author":"S. Chiba","year":"1995","unstructured":"Chiba, S.: A metaobject protocol for C++. In: Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications. SIGPLAN Notices, vol.\u00a030(10), pp. 285\u2013299. ACM Press, New York (1995)"},{"key":"3_CR6","first-page":"113","volume-title":"Proc. of Technology of Object-Oriented Languages and Systems (TOOLS Pacific 1998)","author":"S. Chiba","year":"1998","unstructured":"Chiba, S.: Macro processing in object-oriented languages. In: Proc. of Technology of Object-Oriented Languages and Systems (TOOLS Pacific 1998), pp. 113\u2013126. IEEE Press, Los Alamitos (1998)"},{"key":"3_CR7","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"313","DOI":"10.1007\/3-540-45102-1_16","volume-title":"ECOOP 2000 - Object-Oriented Programming","author":"S. Chiba","year":"2000","unstructured":"Chiba, S.: Load-time structural reflection in Java. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol.\u00a01850, pp. 313\u2013336. Springer, Heidelberg (2000)"},{"key":"3_CR8","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"121","DOI":"10.1007\/11531142_6","volume-title":"ECOOP 2005 - Object-Oriented Programming","author":"S. Chiba","year":"2005","unstructured":"Chiba, S., Ishikawa, R.: Aspect-oriented programming beyond dependency injection. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol.\u00a03586, pp. 121\u2013143. Springer, Heidelberg (2005)"},{"key":"3_CR9","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"482","DOI":"10.1007\/3-540-47910-4_24","volume-title":"ECOOP \u201993 - Object-Oriented Programming","author":"S. Chiba","year":"1993","unstructured":"Chiba, S., Masuda, T.: Designing an extensible distributed language with a meta-level architecture. In: Nierstrasz, O. (ed.) ECOOP 1993. LNCS, vol.\u00a0707, pp. 482\u2013501. Springer, Heidelberg (1993)"},{"key":"3_CR10","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"364","DOI":"10.1007\/978-3-540-39815-8_22","volume-title":"Generative Programming and Component Engineering","author":"S. Chiba","year":"2003","unstructured":"Chiba, S., Nishizawa, M.: An easy-to-use toolkit for efficient Java bytecode translators. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol.\u00a02830, pp. 364\u2013376. Springer, Heidelberg (2003)"},{"key":"3_CR11","doi-asserted-by":"crossref","unstructured":"Dahm, M.: Byte code engineering with the javaclass api. Techincal Report B-17-98, Institut f\u00fcr Informatik, Freie Universit\u00e4t Berlin (1999)","DOI":"10.1007\/978-3-642-60247-4_25"},{"key":"3_CR12","first-page":"391","volume-title":"Formal Description of Programming Concepts","author":"A. Ershov","year":"1978","unstructured":"Ershov, A.: On the essence of compilation. In: Neuhold, E. (ed.) Formal Description of Programming Concepts, pp. 391\u2013420. North-Holland, Amsterdam (1978)"},{"key":"3_CR13","doi-asserted-by":"crossref","unstructured":"Ferber, J.: Computational reflection in class based object oriented languages. In: Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pp. 317\u2013326 (1989)","DOI":"10.1145\/74877.74910"},{"key":"3_CR14","doi-asserted-by":"crossref","unstructured":"Foote, B., Johnson, R.E.: Reflective facilities in Smalltalk-80. In: Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pp. 327\u2013335 (1989)","DOI":"10.1145\/74877.74911"},{"key":"3_CR15","unstructured":"Fowler, M.: Inversion of control containers and the dependency injection pattern (2004), http:\/\/www.martinfowler.com\/articles\/injection.html"},{"key":"3_CR16","series-title":"Lecture Notes in Computer Science","first-page":"1","volume-title":"Proc. of RIMS Symposia on Software Science and Engineering","author":"Y. Futamura","year":"1983","unstructured":"Futamura, Y.: Partial computation of programs. In: Goto, E., Nakajima, R., Yonezawa, A., Nakata, I., Furukawa, K. (eds.) Proc. of RIMS Symposia on Software Science and Engineering. LNCS, vol.\u00a0147, pp. 1\u201335. Springer, Heidelberg (1983)"},{"key":"3_CR17","volume-title":"Smalltalk-80: The Language and Its Implementation","author":"A. Goldberg","year":"1983","unstructured":"Goldberg, A., Robson, D.: Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading (1983)"},{"key":"3_CR18","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"22","DOI":"10.1007\/3-540-48443-4_3","volume-title":"Meta-Level Architectures and Reflection","author":"M. Golm","year":"1999","unstructured":"Golm, M., Klein\u00f6der, J.: Jumping to the meta level, behavioral reflection can be fast and flexible. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol.\u00a01616, pp. 22\u201339. Springer, Heidelberg (1999)"},{"key":"3_CR19","unstructured":"JBoss Inc.: JBoss AOP 1.0.0 final (2004), http:\/\/www.jboss.org\/"},{"key":"3_CR20","doi-asserted-by":"crossref","DOI":"10.7551\/mitpress\/1405.001.0001","volume-title":"The Art of the Metaobject Protocol","author":"G. Kiczales","year":"1991","unstructured":"Kiczales, G., des Rivi\u00e8res, J., Bobrow, D.G.: The Art of the Metaobject Protocol. The MIT Press, Cambridge (1991)"},{"key":"3_CR21","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"220","DOI":"10.1007\/BFb0053381","volume-title":"ECOOP \u201997 - Object-Oriented Programming","author":"G. Kiczales","year":"1997","unstructured":"Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol.\u00a01241, pp. 220\u2013242. Springer, Heidelberg (1997)"},{"key":"3_CR22","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"327","DOI":"10.1007\/3-540-45337-7_18","volume-title":"ECOOP 2001 - Object-Oriented Programming","author":"G. Kiczales","year":"2001","unstructured":"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.\u00a02072, pp. 327\u2013353. Springer, Heidelberg (2001)"},{"key":"3_CR23","unstructured":"Lopes, C.V., Ngo, T.C.: The aspect markup language and its support of aspect plugins. Isr technical report # uci-isr-04-8, University of California, Irvine (2004)"},{"key":"3_CR24","doi-asserted-by":"crossref","unstructured":"Maes, P.: Concepts and experiments in computational reflection. In: Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pp. 147\u2013155 (1987)","DOI":"10.1145\/38765.38821"},{"key":"3_CR25","doi-asserted-by":"crossref","unstructured":"Masuhara, H., Matsuoka, S., Asai, K., Yonezawa, A.: Compiling away the meta-level in object-oriented concurrent reflective languages using partial evaluation. In: Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pp. 300\u2013315 (1995)","DOI":"10.1145\/217838.217869"},{"key":"3_CR26","doi-asserted-by":"crossref","unstructured":"Masuhara, H., Matsuoka, S., Watanabe, T., Yonezawa, A.: Object-oriented concurrent reflective languages can be implemented efficiently. In: Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pp. 127\u2013144 (1992)","DOI":"10.1145\/141936.141948"},{"key":"3_CR27","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"418","DOI":"10.1007\/BFb0054102","volume-title":"ECOOP \u201998 - Object-Oriented Programming","author":"H. Masuhara","year":"1998","unstructured":"Masuhara, H., Yonezawa, A.: Design and partial evaluation of meta-objects for a concurrent reflective languages. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol.\u00a01445, pp. 418\u2013439. Springer, Heidelberg (1998)"},{"key":"3_CR28","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"190","DOI":"10.1007\/3-540-49538-X_10","volume-title":"ECOOP \u201995 - Object-Oriented Programming","author":"J. McAffer","year":"1995","unstructured":"McAffer, J.: Meta-level programming with coda. In: Olthoff, W. (ed.) ECOOP 1995. LNCS, vol.\u00a0952, pp. 190\u2013214. Springer, Heidelberg (1995)"},{"key":"3_CR29","doi-asserted-by":"publisher","first-page":"90","DOI":"10.1145\/643603.643613","volume-title":"Proc. of Int\u2019l Conf. on Aspect-Oriented Software Development (AOSD 2003)","author":"M. Mezini","year":"2003","unstructured":"Mezini, M., Ostermann, K.: Conquering aspects with caesar. In: Proc. of Int\u2019l Conf. on Aspect-Oriented Software Development (AOSD 2003), pp. 90\u201399. ACM Press, New York (2003)"},{"key":"3_CR30","doi-asserted-by":"publisher","first-page":"141","DOI":"10.1145\/508386.508404","volume-title":"Proc. of Int\u2019l Conf. on Aspect-Oriented Software Development (AOSD 2002)","author":"A. Popovici","year":"2002","unstructured":"Popovici, A., Gross, T., Alonso, G.: Dynamic weaving for aspect-oriented programming. In: Proc. of Int\u2019l Conf. on Aspect-Oriented Software Development (AOSD 2002), pp. 141\u2013147. ACM Press, New York (2002)"},{"key":"3_CR31","doi-asserted-by":"publisher","first-page":"59","DOI":"10.1109\/ICSE.2005.1553548","volume-title":"Proc. of the 27th International Conference on Software Engineering (ICSE 2005)","author":"H. Rajan","year":"2005","unstructured":"Rajan, H., Sullivan, K.J.: Classpects: Unifying aspect- and object-oriented language design. In: Proc. of the 27th International Conference on Software Engineering (ICSE 2005), pp. 59\u201368. ACM Press, New York (2005)"},{"key":"3_CR32","doi-asserted-by":"crossref","unstructured":"Sakurai, K., Masuhara, H., Ubayashi, N., Matsuura, S., Kimoya, S.: Association aspects. In: Aspect-Oriented Software Development, pp. 16\u201325 (2004)","DOI":"10.1145\/976270.976275"},{"key":"3_CR33","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"189","DOI":"10.1007\/978-3-540-39815-8_12","volume-title":"Generative Programming and Component Engineering","author":"Y. Sato","year":"2003","unstructured":"Sato, Y., Chiba, S., Tatsubori, M.: A selective, just-in-time aspect weaver. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol.\u00a02830, pp. 189\u2013208. Springer, Heidelberg (2003)"},{"key":"3_CR34","doi-asserted-by":"crossref","unstructured":"Smith, B.C.: Reflection and semantics in Lisp. In: Proc. of ACM Symp. on Principles of Programming Languages, pp. 23\u201335 (1984)","DOI":"10.1145\/800017.800513"},{"key":"3_CR35","unstructured":"Smith, B.: Reflection and semantics in a procedural languages. Technical Report MIT-TR-272, M.I.T. Laboratory for Computer Science (1982)"},{"key":"3_CR36","unstructured":"Sun Microsystems: Java 2 Platform, Enterprise Edition (J2EE), http:\/\/java.sun.com\/j2ee\/"},{"key":"3_CR37","doi-asserted-by":"publisher","first-page":"21","DOI":"10.1145\/643603.643606","volume-title":"Proc. of Int\u2019l Conf. on Aspect-Oriented Software Development (AOSD 2003)","author":"D. Suv\u00e9e","year":"2003","unstructured":"Suv\u00e9e, D., Vanderperren, W., Jonckers, V.: Jasco: An aspect-oriented approach tailored for component based software development. In: Proc. of Int\u2019l Conf. on Aspect-Oriented Software Development (AOSD 2003), pp. 21\u201329. ACM Press, New York (2003)"},{"key":"3_CR38","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"117","DOI":"10.1007\/3-540-45046-7_7","volume-title":"Reflection and Software Engineering","author":"M. Tatsubori","year":"2000","unstructured":"Tatsubori, M., Chiba, S., Killijian, M.O., Itano, K.: Openjava: A class-based macro system for java. In: Cazzola, W., Stroud, R.J., Tisato, F. (eds.) Reflection and Software Engineering. LNCS, vol.\u00a01826, pp. 117\u2013135. Springer, Heidelberg (2000)"},{"key":"3_CR39","doi-asserted-by":"crossref","unstructured":"Watanabe, T., Yonezawa, A.: Reflection in an object-oriented concurrent language. In: Proc. of ACM Conf. on Object-Oriented Programming Systems, Languages, and Applications, pp. 306\u2013315 (1988)","DOI":"10.1145\/62083.62111"},{"key":"3_CR40","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"2","DOI":"10.1007\/3-540-48443-4_2","volume-title":"Meta-Level Architectures and Reflection","author":"I. Welch","year":"1999","unstructured":"Welch, I., Stroud, R.: From dalang to kava \u2014 the evolution of a reflective java extension. In: Cointe, P. (ed.) Reflection 1999. LNCS, vol.\u00a01616, pp. 2\u201321. Springer, Heidelberg (1999)"}],"container-title":["Lecture Notes in Computer Science","Generative and Transformational Techniques in Software Engineering"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/11877028_3.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,11]],"date-time":"2025-01-11T20:02:57Z","timestamp":1736625777000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/11877028_3"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2006]]},"ISBN":["9783540457787","9783540462354"],"references-count":40,"URL":"https:\/\/doi.org\/10.1007\/11877028_3","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2006]]}}}