{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,15]],"date-time":"2024-09-15T07:13:38Z","timestamp":1726384418621},"reference-count":29,"publisher":"Springer Science and Business Media LLC","issue":"3","license":[{"start":{"date-parts":[[2005,10,1]],"date-time":"2005-10-01T00:00:00Z","timestamp":1128124800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/2.0"},{"start":{"date-parts":[[2005,10,1]],"date-time":"2005-10-01T00:00:00Z","timestamp":1128124800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/2.0"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J Braz Comp Soc"],"published-print":{"date-parts":[[2005,10]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>In this paper we describe an aspect-oriented infrastructure to handle dynamic AOP based on the Lua language. This infrastructure is composed of AspectLua, a Lua extension that allows the declaration of aspects, and a meta-object protocol, LuaMOP, that unifies the introspective and reflective mechanisms provided by Lua. Aspects are defined in isolation using AspectLua and then they are weaved through LuaMOP. An important feature of AspectLua is to allow the association of aspects with undeclared elements of the application code (anticipated join points). Furthermore, it combines a range of features to make AOP easier and powerful.<\/jats:p>","DOI":"10.1007\/bf03192379","type":"journal-article","created":{"date-parts":[[2010,11,11]],"date-time":"2010-11-11T15:17:14Z","timestamp":1289488634000},"page":"7-20","source":"Crossref","is-referenced-by-count":3,"title":["A Lua-based AOP infrastructure"],"prefix":"10.1007","volume":"11","author":[{"given":"N\u00e9lio","family":"Cacho","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Tha\u00eds","family":"Batista","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Fabr\u00edcio","family":"Fernandes","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"BF03192379_CR1","unstructured":"[1]A. Bryant, R. Feldt. AspectR \u2014 Simple aspect-oriented programming in Ruby. http:\/\/aspectr.sourceforge.net\/, 2002."},{"key":"BF03192379_CR2","unstructured":"[2]D. Dechow. Advanced Separation of Concerns for Dynamic, Lightweight Languages. In5th Generative Programming and Component Engineering."},{"key":"BF03192379_CR3","unstructured":"[3]A. Gal, W. Schr\u00f6der-Preikschat, O. Spinczyk. AspectC++: Language Proposal and Prototype Implementation.OOPSLA 2001 Workshop on Advanced Separation of Concerns in Object-Oriented Systems, Tampa \u2014 Fl, October, 2001."},{"key":"BF03192379_CR4","unstructured":"[4]A. Goldberg, D. Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, 1983."},{"key":"BF03192379_CR5","unstructured":"[5]S. Herrmann, M. Mezini. Combining Composition Styles in the Evolvable Language LAC. In:ASoC Workshop in ICSE \u2014 International Conference on Software Engineering, 2001."},{"key":"BF03192379_CR6","series-title":"LNCS","doi-asserted-by":"publisher","first-page":"216","DOI":"10.1007\/3-540-36557-5_17","volume-title":"Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World","author":"R. Hirschfeld","year":"2002","unstructured":"[6]R. Hirschfeld. AspectS \u2014 Aspect-Oriented Programming with Squeak. InRevised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World, LNCS 2591, pp. 216\u2013232, Springer-Verlag, London, 2002."},{"issue":"6","key":"BF03192379_CR7","doi-asserted-by":"publisher","first-page":"635","DOI":"10.1002\/(SICI)1097-024X(199606)26:6<635::AID-SPE26>3.0.CO;2-P","volume":"26","author":"R. Ierusalimsky","year":"1996","unstructured":"[7]R. Ierusalimsky, L. H. Figueiredo, W. Celes. Lua \u2014 an extensible extension language.Software: Practice and xperience, 26(6):635\u2013652. 1996.","journal-title":"Software: Practice and xperience"},{"key":"BF03192379_CR8","doi-asserted-by":"crossref","unstructured":"[8]P. Maes. Concepts and Experiments in Computational Reflection. InObject-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Orlando, Florida, pp. 147-155, 1987.","DOI":"10.1145\/38765.38821"},{"key":"BF03192379_CR9","volume-title":"ECOOP\u201997 - European Conference on Object-Oriented Programming","author":"G. Kiczales","year":"1997","unstructured":"[9]G. Kiczales, J. Lamping, A. Mendhekar et al. Aspectoriented programming. In:ECOOP\u201997 - European Conference on Object-Oriented Programming. Springer-Verlag, Finland. 1997."},{"key":"BF03192379_CR10","doi-asserted-by":"crossref","unstructured":"[10]G. Kiczales, E. Hilsdale, J. Hugunin et al. An Overview of AspectJ. InECOOP\u20192001 \u2014 European Conference on Object-Oriented Programming. Budapest, Hungary. 2001.","DOI":"10.1007\/3-540-45337-7_18"},{"key":"BF03192379_CR11","unstructured":"[11]K. Lierberherr, D. Lorenz, M. Mezini. Programming with Aspectual Components. Technical Report NUCCS99-01, Notheastern University. 1999."},{"key":"BF03192379_CR12","unstructured":"[12]R. Miles. Lazy Loading with Aspects. ONJa-va.com, http:\/\/www.onjava.com\/pub\/a\/onjava\/2004\/03\/1 7\/lazyAspects.html. 2004."},{"key":"BF03192379_CR13","unstructured":"[13]G. Rossum. Python Reference Manual, http:\/\/www.python.org\/doc\/current\/ref\/ref.html. 2003."},{"key":"BF03192379_CR14","unstructured":"[14]D. Thomas, A. Hunt. Programming Ruby: A Pragmatic Programmer\u2019s Guide. http:\/\/www.rubycentral.com\/ book\/, 2004."},{"key":"BF03192379_CR15","unstructured":"[15]N. Cacho, T. Batista. Adapta\u00e7\u00e3o Din\u00e2mica no Open-Orb: detalhes de implementa\u00e7\u00e3o In 23th Brazilian Symposium on Computer Networks (SBRC\u20192005), SBC, Fortaleza, CE, May 2005, pp. 495\u2013508."},{"key":"BF03192379_CR16","unstructured":"[16]A. Andersen, G. S. Blair, F. Eliassen. A reflective component-based middleware with quality of service management. InPROMS 2000, Protocols for Multimedia Systems. Cracow, Poland, 2000."},{"key":"BF03192379_CR17","unstructured":"[17]G. S. Blair et al. The design and implementation of Open ORB v2.IEEE Distributed Systems Online, 2(6), 2001. http:\/\/www.cs.uit.no\/aa\/abstracts\/blair2001a.html."},{"key":"BF03192379_CR18","doi-asserted-by":"crossref","unstructured":"[18]J. Sztipanovits, G. Karsai. Generative Programming for Embedded Systems.The ACM SIGPLAN\/ SIGSOFT Conference on Generative Programming and Component Engineering. Lecture Notes In Computer Science (LNCS), Vol. 2487, pp. 32-49, 2002.","DOI":"10.1007\/3-540-45821-2_2"},{"key":"BF03192379_CR19","unstructured":"[19]Nicoara, G. Alonso. Dynamic AOP with PROSE. Department of Computer Science. Swiss Federal Institute of Technology Z\u00fcrich. ttp:\/\/ www.iks.inf.ethz.ch\/publications\/publications\/files\/ PROSE-ASMEA05.pdf"},{"key":"BF03192379_CR20","doi-asserted-by":"crossref","unstructured":"[20]Chiba, S. A Metaobject Protocol for C++. InObject-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Austin, Texas, October 1995, pp. 285-299.","DOI":"10.1145\/217838.217868"},{"key":"BF03192379_CR21","doi-asserted-by":"crossref","unstructured":"[21]Tatsubori, M. et al. OpenJava: A Class-based Macro System for Java. InReflection and Software Engineering, LNCS 1826, Springer Verlag, 200, pp. 117-133.","DOI":"10.1007\/3-540-45046-7_7"},{"key":"BF03192379_CR22","doi-asserted-by":"crossref","unstructured":"[22]D. H. H. Ingalls, T. Kaehler, J. Maloney et al. Back to the Future: The Story of Squeak, A Practical Smalltalk Written in Itself. InProceedings of OOPSLA \u201997, Atlanta, Georgia, October 5\u20139, 1997. SIGPLAN Notices 32(10).","DOI":"10.1145\/263700.263754"},{"key":"BF03192379_CR23","doi-asserted-by":"crossref","unstructured":"[23]A. D. Almeida, N. Cacho, T. Batista. LuaSpace Plus: Um Ambiente Visual para Desenvolvimen-to de Aplica\u00e7\u00e3es CORBA. InProceeding of the 18th Brazilian Symposium on Software Engineering(SBES\u20192004), SBC, pp. 163-177, Bras\u00edlia, DF, October 2004.","DOI":"10.5753\/sbes.2004.23840"},{"issue":"7","key":"BF03192379_CR24","first-page":"1177","volume":"11","author":"N. Cacho","year":"2005","unstructured":"[24]N. Cacho, F. Fernandes, T. Batista. Handling Dynamic Aspects in Lua.Journal of Universal Computer Science (J.UCS), 11(7):1177\u20131197, 2005.","journal-title":"Journal of Universal Computer Science (J.UCS)"},{"key":"BF03192379_CR25","doi-asserted-by":"publisher","first-page":"220","DOI":"10.1145\/1028613.1028620","volume-title":"Proceedings of the 3rd workshop on Adaptive and reflective middleware","author":"F. Fernandes","year":"2004","unstructured":"[25]F. Fernandes, T. Batista, N. Cacho. Exploring reflection to dynamically aspectizing corba-based applications. InProceedings of the 3rd workshop on Adaptive and reflective middleware, pp. 220\u2013225, New York, USA. ACM Press. 2004."},{"key":"BF03192379_CR26","unstructured":"[26]J. Bon\u00e9r. AspectWerkz \u2014 Dynamic AOP for Java. http:\/\/codehaus.org\/~jboner\/papers\/aosd2004_aspectwerkz.pdf. 2003."},{"key":"BF03192379_CR27","doi-asserted-by":"crossref","unstructured":"[27]R. Pawlak, L. Duchien, G. Florin et al. JAC: An Aspect-Based Distributed Dynamic Framework http:\/\/jac.objectweb.org\/.2005.","DOI":"10.1002\/spe.605"},{"key":"BF03192379_CR28","doi-asserted-by":"crossref","unstructured":"[28]C. Zhang, D. Gao, H. Jacobsen. Towards Just- in-time Middleware Architectures. InFourth International Conference on Aspect-riented Software Development, Chicago, USA, March 2005.","DOI":"10.1145\/1052898.1052904"},{"key":"BF03192379_CR29","unstructured":"[29]F. Hunleth, R. Cytron, C. Gill. Building Customizable Middleware using Aspect Oriented Programming. InOOPSLA 2001 Workshop on Advanced Separation of Concerns in Object-Oriented Systems. 2001. Tampa, Florida."}],"container-title":["Journal of the Brazilian Computer Society"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/BF03192379.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/BF03192379\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/www.springerlink.com\/index\/pdf\/10.1007\/BF03192379","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/BF03192379.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,6,4]],"date-time":"2023-06-04T05:17:27Z","timestamp":1685855847000},"score":1,"resource":{"primary":{"URL":"https:\/\/journal-bcs.springeropen.com\/articles\/10.1007\/BF03192379"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2005,10]]},"references-count":29,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2005,10]]}},"alternative-id":["BF03192379"],"URL":"https:\/\/doi.org\/10.1007\/bf03192379","relation":{},"ISSN":["0104-6500","1678-4804"],"issn-type":[{"value":"0104-6500","type":"print"},{"value":"1678-4804","type":"electronic"}],"subject":[],"published":{"date-parts":[[2005,10]]}}}