publications: - title: "A Compilation and Optimization Model for Aspect-Oriented Programs" author: - name: "Hidehiko Masuhara" link: "https://researchr.org/alias/hidehiko-masuhara" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Christopher Dutchyn" link: "https://researchr.org/alias/christopher-dutchyn" year: "2003" doi: "http://link.springer.de/link/service/series/0558/bibs/2622/26220046.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2622/26220046.htm" tags: - "optimization" - "object-oriented programming" - "AOP" - "object-role modeling" - "aspect oriented programming" - "subject-oriented programming" - "program optimization" - "feature-oriented programming" researchr: "https://researchr.org/publication/MasuharaKD03" cites: 0 citedby: 0 pages: "46-60" booktitle: "cc" kind: "inproceedings" key: "MasuharaKD03" - title: "An Overview of AspectJ" author: - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Erik Hilsdale" link: "https://researchr.org/alias/erik-hilsdale" - name: "Jim Hugunin" link: "https://researchr.org/alias/jim-hugunin" - name: "Mik Kersten" link: "https://researchr.org/alias/mik-kersten" - name: "Jeffrey Palm" link: "https://researchr.org/alias/jeffrey-palm" - name: "William G. Griswold" link: "https://researchr.org/alias/william-g.-griswold" year: "2001" doi: "http://link.springer.de/link/service/series/0558/bibs/2072/20720327.htm" abstract: "AspectJ™ is a simple and practical aspect-oriented extension to Java.. With just a few new constructs, AspectJ provides support for modular implementation of a range of crosscutting concerns. In AspectJ’s dynamic join point model, join points are well-defined points in the execution of the program; pointcuts are collections of join points; advice are special method-like constructs that can be attached to pointcuts; and aspects are modular units of crosscutting implementation, comprising pointcuts, advice, and ordinary Java member declarations. AspectJ code is compiled into standard Java bytecode. Simple extensions to existing Java development environments make it possible to browse the crosscutting structure of aspects in the same kind of way as one browses the inheritance structure of classes. Several examples show that AspectJ is powerful, and that programs written using it are easy to understand." links: doi: "http://link.springer.de/link/service/series/0558/bibs/2072/20720327.htm" tags: - "AspectJ" - "object-oriented programming" - "Java" - "meta programming" - "meta-model" - "AOP" - "model-driven development" - "object-role modeling" - "aspect oriented programming" - "compiler" - "subject-oriented programming" - "Meta-Environment" - "feature-oriented programming" researchr: "https://researchr.org/publication/KiczalesHHKPG01" cites: 0 citedby: 1 pages: "327-353" booktitle: "ECOOP" kind: "inproceedings" key: "KiczalesHHKPG01" - title: "Aspects: passing fad or new foundation?" author: - name: "Adrian M. Colyer" link: "https://researchr.org/alias/adrian-m.-colyer" - name: "Jack Greenfield" link: "https://researchr.org/alias/jack-greenfield" - name: "Ivar Jacobson" link: "https://researchr.org/alias/ivar-jacobson" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Dave A. Thomas" link: "https://researchr.org/alias/dave-a.-thomas" year: "2005" doi: "http://doi.acm.org/10.1145/1094855.1094977" links: doi: "http://doi.acm.org/10.1145/1094855.1094977" tags: - "object-oriented programming" - "AOP" - "aspect oriented programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/ColyerGJKT05" cites: 0 citedby: 0 pages: "376-377" booktitle: "OOPSLA" kind: "inproceedings" key: "ColyerGJKT05" - title: "Open Implementation Design Guidelines" author: - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "John Lamping" link: "https://researchr.org/alias/john-lamping" - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Chris Maeda" link: "https://researchr.org/alias/chris-maeda" - name: "Anurag Mendhekar" link: "https://researchr.org/alias/anurag-mendhekar" - name: "Gail C. Murphy" link: "https://researchr.org/alias/gail-c.-murphy" year: "1997" doi: "http://doi.acm.org/10.1145/253228.253431" links: doi: "http://doi.acm.org/10.1145/253228.253431" tags: - "object-oriented programming" - "AOP" - "source-to-source" - "C++" - "aspect oriented programming" - "subject-oriented programming" - "design" - "feature-oriented programming" - "open-source" researchr: "https://researchr.org/publication/KiczalesLLMMM97" cites: 0 citedby: 0 pages: "481-490" booktitle: "ICSE" kind: "inproceedings" key: "KiczalesLLMMM97" - title: "Getting started with ASPECTJ" author: - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Erik Hilsdale" link: "https://researchr.org/alias/erik-hilsdale" - name: "Jim Hugunin" link: "https://researchr.org/alias/jim-hugunin" - name: "Mik Kersten" link: "https://researchr.org/alias/mik-kersten" - name: "Jeffrey Palm" link: "https://researchr.org/alias/jeffrey-palm" - name: "William G. Griswold" link: "https://researchr.org/alias/william-g.-griswold" year: "2001" tags: - "AspectJ" - "object-oriented programming" - "AOP" - "aspect oriented programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/KiczalesHHKPG01%3A0" cites: 0 citedby: 0 journal: "CACM" volume: "44" number: "10" pages: "59-65" kind: "article" key: "KiczalesHHKPG01:0" - title: "Fluid AOP join point models" author: - name: "Terry Hon" link: "https://researchr.org/alias/terry-hon" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2006" doi: "http://doi.acm.org/10.1145/1176617.1176687" links: doi: "http://doi.acm.org/10.1145/1176617.1176687" tags: - "object-oriented programming" - "AOP" - "object-role modeling" - "aspect oriented programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/HonK06" cites: 0 citedby: 0 pages: "712-713" booktitle: "OOPSLA" kind: "inproceedings" key: "HonK06" - title: "Aspect-oriented programming and modular reasoning" author: - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Mira Mezini" link: "https://researchr.org/alias/mira-mezini" year: "2005" doi: "http://doi.acm.org/10.1145/1062455.1062482" links: doi: "http://doi.acm.org/10.1145/1062455.1062482" tags: - "object-oriented programming" - "AOP" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/KiczalesM05%3A0" cites: 0 citedby: 0 pages: "49-58" booktitle: "ICSE" kind: "inproceedings" key: "KiczalesM05:0" - title: "Improving design and source code modularity using AspectJ (tutorial session)" author: - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2000" doi: "http://doi.acm.org/10.1145/337180.337848" links: doi: "http://doi.acm.org/10.1145/337180.337848" tags: - "AspectJ" - "object-oriented programming" - "AOP" - "source-to-source" - "aspect oriented programming" - "subject-oriented programming" - "design" - "feature-oriented programming" - "open-source" researchr: "https://researchr.org/publication/LopesK00%3A0" cites: 0 citedby: 0 pages: "825" booktitle: "ICSE" kind: "inproceedings" key: "LopesK00:0" - title: "A semantics for advice and dynamic join points in aspect-oriented programming" author: - name: "Mitchell Wand" link: "https://researchr.org/alias/mitchell-wand" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Christopher Dutchyn" link: "https://researchr.org/alias/christopher-dutchyn" year: "2004" doi: "http://doi.acm.org/10.1145/1018203.1018208" links: doi: "http://doi.acm.org/10.1145/1018203.1018208" tags: - "object-oriented programming" - "semantics" - "AOP" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/WandKD04" cites: 0 citedby: 0 journal: "TOPLAS" volume: "26" number: "5" pages: "890-910" kind: "article" key: "WandKD04" - title: "Brittle systems will break - not bend: can aspect-oriented programming help?" author: - name: "Yvonne Coady" link: "https://researchr.org/alias/yvonne-coady" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Joon Suan Ong" link: "https://researchr.org/alias/joon-suan-ong" - name: "Andrew Warfield" link: "https://researchr.org/alias/andrew-warfield" - name: "Michael J. Feeley" link: "https://researchr.org/alias/michael-j.-feeley" year: "2002" doi: "http://doi.acm.org/10.1145/1133373.1133389" links: doi: "http://doi.acm.org/10.1145/1133373.1133389" tags: - "object-oriented programming" - "AOP" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/CoadyKOWF02" cites: 0 citedby: 0 pages: "79-86" booktitle: "sigopsE" kind: "inproceedings" key: "CoadyKOWF02" - title: "Discussing aspects of AOP" author: - name: "Tzilla Elrad" link: "https://researchr.org/alias/tzilla-elrad" - name: "Mehmet Aksit" link: "http://www.utwente.nl/ewi/trese/people/Aksit/" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Karl J. Lieberherr" link: "https://researchr.org/alias/karl-j.-lieberherr" - name: "Harold Ossher" link: "http://portal.acm.org/author_page.cfm?id=81100333974&coll=GUIDE&dl=GUIDE&trk=0&CFID=51132785&CFTOKEN=62287740" year: "2001" tags: - "object-oriented programming" - "AOP" - "aspect oriented programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/ElradAKLO01" cites: 0 citedby: 0 journal: "CACM" volume: "44" number: "10" pages: "33-38" kind: "article" key: "ElradAKLO01" - title: "Structuring operating system aspects" author: - name: "Yvonne Coady" link: "https://researchr.org/alias/yvonne-coady" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Michael J. Feeley" link: "https://researchr.org/alias/michael-j.-feeley" - name: "Norman C. Hutchinson" link: "https://researchr.org/alias/norman-c.-hutchinson" - name: "Joon Suan Ong" link: "https://researchr.org/alias/joon-suan-ong" year: "2001" tags: - "object-oriented programming" - "operating system" - "AOP" - "C++" - "aspect oriented programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/CoadyKFHO01" cites: 0 citedby: 0 journal: "CACM" volume: "44" number: "10" pages: "79-82" kind: "article" key: "CoadyKFHO01" - title: "Modeling Crosscutting in Aspect-Oriented Mechanisms" author: - name: "Hidehiko Masuhara" link: "https://researchr.org/alias/hidehiko-masuhara" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2003" doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2743&spage=2" links: doi: "http://springerlink.metapress.com/openurl.asp?genre=article&issn=0302-9743&volume=2743&spage=2" tags: - "object-oriented programming" - "modeling" - "AOP" - "object-role modeling" - "aspect oriented programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/MasuharaK03" cites: 0 citedby: 0 pages: "2-28" booktitle: "ECOOP" kind: "inproceedings" key: "MasuharaK03" - title: "Aspect-Oriented System Structure" author: - name: "Yvonne Coady" link: "https://researchr.org/alias/yvonne-coady" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Michael J. Feeley" link: "https://researchr.org/alias/michael-j.-feeley" - name: "Norman C. Hutchinson" link: "https://researchr.org/alias/norman-c.-hutchinson" - name: "Joon Suan Ong" link: "https://researchr.org/alias/joon-suan-ong" - name: "Stephan Gudmundson" link: "https://researchr.org/alias/stephan-gudmundson" year: "2001" doi: "http://csdl.computer.org/comp/proceedings/hotos/2001/1040/00/10400166.pdf" links: doi: "http://csdl.computer.org/comp/proceedings/hotos/2001/1040/00/10400166.pdf" tags: - "object-oriented programming" - "AOP" - "C++" - "aspect oriented programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/CoadyKFHOG01" cites: 0 citedby: 0 pages: "166" booktitle: "hotos" kind: "inproceedings" key: "CoadyKFHOG01" - title: "Data Abstraction in AspectJ" author: - name: "Stephan Gudmundson" link: "https://researchr.org/alias/stephan-gudmundson" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2001" doi: "http://link.springer.de/link/service/series/0558/bibs/2192/21920270.htm" abstract: "The AspectJ project[1] is exploring language support to enable programmers to implement crosscutting concerns in a modular fashion. Previous work in this area has primarily examined the expressiveness of AspectJ, to further aspect-oriented programming language research. In our work we focus on critical software engineering issues related to system modularity. In particular, we want to understand how use of AspectJ interacts with the well-known data abstraction principle[2]. In this abstract, we describe some of our work in identifying the explicit and implicit ways that modules can become dependent upon design decisions of another module in AspectJ. We hope that this information will provide a useful perspective to aspect-oriented programming language designers and will help users of AspectJ make informed design decisions. Given the space constraints, we must assume that the reader is familiar with the AspectJ language[1]. " links: doi: "http://link.springer.de/link/service/series/0558/bibs/2192/21920270.htm" tags: - "programming languages" - "AspectJ" - "object-oriented programming" - "data-flow language" - "AOP" - "language engineering" - "software language engineering" - "design research" - "language design" - "constraints" - "data-flow programming" - "data-flow" - "software engineering" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "abstraction" - "reflection" - "design" - "feature-oriented programming" researchr: "https://researchr.org/publication/GudmundsonK01" cites: 0 citedby: 0 pages: "270-271" booktitle: "reflection" kind: "inproceedings" key: "GudmundsonK01" - title: "Aspect-oriented programming" author: - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2005" doi: "http://doi.acm.org/10.1145/1062455.1062640" links: doi: "http://doi.acm.org/10.1145/1062455.1062640" tags: - "object-oriented programming" - "AOP" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/Kiczales05" cites: 0 citedby: 0 pages: "730" booktitle: "ICSE" kind: "inproceedings" key: "Kiczales05" - title: "Making the Code Look Like the Design - Aspects and Other Recent Work" author: - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2007" doi: "http://doi.ieeecomputersociety.org/10.1109/ICPC.2007.25" links: doi: "http://doi.ieeecomputersociety.org/10.1109/ICPC.2007.25" tags: - "object-oriented programming" - "AOP" - "aspect oriented programming" - "subject-oriented programming" - "design" - "feature-oriented programming" researchr: "https://researchr.org/publication/Kiczales07" cites: 0 citedby: 0 pages: "14" booktitle: "IWPC" kind: "inproceedings" key: "Kiczales07" - title: "Aspect-Oriented Programming" author: - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "1996" tags: - "object-oriented programming" - "AOP" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/Kiczales96%3A0" cites: 0 citedby: 0 journal: "ACM Comput. Surv." volume: "28" number: "4es" pages: "154" kind: "article" key: "Kiczales96:0" - title: "Aspect-Oriented Programming" author: - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2000" doi: "http://doi.ieeecomputersociety.org/10.1109/TOOLS.2000.10016" links: doi: "http://doi.ieeecomputersociety.org/10.1109/TOOLS.2000.10016" tags: - "object-oriented programming" - "AOP" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/LopesK00" cites: 0 citedby: 0 pages: "468" booktitle: "TOOLS" kind: "inproceedings" key: "LopesK00" - title: "The scalability of AspectJ" author: - name: "Arjun Singh" link: "https://researchr.org/alias/arjun-singh" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2007" doi: "http://doi.acm.org/10.1145/1321211.1321233" abstract: "The AspectJ project[1] is exploring language support to enable programmers to implement crosscutting concerns in a modular fashion. Previous work in this area has primarily examined the expressiveness of AspectJ, to further aspect-oriented programming language research. In our work we focus on critical software engineering issues related to system modularity. In particular, we want to understand how use of AspectJ interacts with the well-known data abstraction principle[2]. In this abstract, we describe some of our work in identifying the explicit and implicit ways that modules can become dependent upon design decisions of another module in AspectJ. We hope that this information will provide a useful perspective to aspect-oriented programming language designers and will help users of AspectJ make informed design decisions. Given the space constraints, we must assume that the reader is familiar with the AspectJ language[1]. " links: doi: "http://doi.acm.org/10.1145/1321211.1321233" tags: - "programming languages" - "AspectJ" - "object-oriented programming" - "data-flow language" - "AOP" - "language engineering" - "software language engineering" - "design research" - "language design" - "constraints" - "data-flow programming" - "data-flow" - "software engineering" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "abstraction" - "design" - "feature-oriented programming" researchr: "https://researchr.org/publication/SinghK07" cites: 0 citedby: 0 pages: "203-214" booktitle: "cascon" kind: "inproceedings" key: "SinghK07" - title: "Uniform Support for Modeling Crosscutting Structure" author: - name: "Maria Tkatchenko" link: "https://researchr.org/alias/maria-tkatchenko" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2005" doi: "http://dx.doi.org/10.1007/11557432_39" links: doi: "http://dx.doi.org/10.1007/11557432_39" tags: - "object-oriented programming" - "modeling" - "AOP" - "UML" - "object-role modeling" - "aspect oriented programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/TkatchenkoK05" cites: 0 citedby: 0 pages: "508-521" booktitle: "uml" kind: "inproceedings" key: "TkatchenkoK05" - title: "Lightweight virtual machine support for AspectJ" author: - name: "Ryan M. Golbeck" link: "https://researchr.org/alias/ryan-m.-golbeck" - name: "Samuel Davis" link: "https://researchr.org/alias/samuel-davis" - name: "Immad Naseer" link: "https://researchr.org/alias/immad-naseer" - name: "Igor Ostrovsky" link: "https://researchr.org/alias/igor-ostrovsky" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2008" doi: "http://doi.acm.org/10.1145/1353482.1353504" abstract: "Advice weaving can be efficiently supported with only lightweight enhancements to existing Virtual Machines. Performing weaving at the Java bytecode (JBC) level while preserving appropriate metadata enables the VM to understand the AspectJ-specific semantics of the code and optimize it. This allows the overhead of advice weaving and performing non-local advice dispatch optimization to occur prior to runtime. It also allows the VM to perform optimizations that are unavailable to a bytecode level weaver. An experimental implementation shows that this approach can take advantage of previously known macro optimizations of expensive constructs, including cflow, as well as micro optimizations including those based on improved type analysis unavailable to JBC-based advice dispatch. A thorough benchmark evaluation confirms that the use of this architecture does not result in runtime performance overhead and benefits from the implemented optimizations. " links: doi: "http://doi.acm.org/10.1145/1353482.1353504" tags: - "optimization" - "AspectJ" - "object-oriented programming" - "semantics" - "rule-based" - "Java" - "AOP" - "architecture" - "analysis" - "macros" - "weaving" - "aspect oriented programming" - "subject-oriented programming" - "systematic-approach" - "feature-oriented programming" researchr: "https://researchr.org/publication/GolbeckDNOK08" cites: 0 citedby: 0 pages: "180-190" booktitle: "AOSD" kind: "inproceedings" key: "GolbeckDNOK08" - title: "Aspect-oriented programming" author: - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Erik Hilsdale" link: "https://researchr.org/alias/erik-hilsdale" year: "2001" doi: "http://doi.acm.org/10.1145/503209.503260" links: doi: "http://doi.acm.org/10.1145/503209.503260" tags: - "object-oriented programming" - "AOP" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/KiczalesH01" cites: 0 citedby: 0 pages: "313" booktitle: "ESEC/FSE" kind: "inproceedings" key: "KiczalesH01" - title: "Aspect-Oriented Programming of Sparse Matrix Code" author: - name: "John Irwin" link: "https://researchr.org/alias/john-irwin" - name: "Jean-Marc Loingtier" link: "https://researchr.org/alias/jean-marc-loingtier" - name: "John R. Gilbert" link: "https://researchr.org/alias/john-r.-gilbert" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "John Lamping" link: "https://researchr.org/alias/john-lamping" - name: "Anurag Mendhekar" link: "https://researchr.org/alias/anurag-mendhekar" - name: "Tatiana Shpeisman" link: "https://researchr.org/alias/tatiana-shpeisman" year: "1997" tags: - "object-oriented programming" - "AOP" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/IrwinLGKLMS97" cites: 0 citedby: 0 pages: "249-256" booktitle: "iscope" kind: "inproceedings" key: "IrwinLGKLMS97" - title: "Aspect-Oriented Programming" author: - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "John Lamping" link: "https://researchr.org/alias/john-lamping" - name: "Anurag Mendhekar" link: "https://researchr.org/alias/anurag-mendhekar" - name: "Chris Maeda" link: "https://researchr.org/alias/chris-maeda" - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Jean-Marc Loingtier" link: "https://researchr.org/alias/jean-marc-loingtier" - name: "John Irwin" link: "https://researchr.org/alias/john-irwin" year: "1997" doi: "10.1007/BFb0053381" abstract: "We have found many programming problems for which neither procedural nor object-oriented programming techniques are sufficient to clearly capture some of the important design decisions the program must implement. This forces the implementation of those design decisions to be scattered throughout the code, resulting in “tangled” code that is excessively difficult to develop and maintain. We present an analysis of why certain design decisions have been so difficult to clearly capture in actual code. We call the properties these decisions address aspects, and show that the reason they have been hard to capture is that they cross-cut the system's basic functionality. We present the basis for a new programming technique, called aspect-oriented programming, that makes it possible to clearly express programs involving such aspects, including appropriate isolation, composition and reuse of the aspect code. The discussion is rooted in systems we have built using aspect-oriented programming." tags: - "object-oriented programming" - "program analysis" - "meta programming" - "AOP" - "composition" - "functional programming" - "analysis" - "reuse" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "Meta-Environment" - "design" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/KiczalesLMMLLI97" cites: 0 citedby: 3 pages: "220-242" booktitle: "ECOOP" kind: "inproceedings" key: "KiczalesLMMLLI97" - title: "Semantics and scoping of aspects in higher-order languages" author: - name: "Christopher Dutchyn" link: "https://researchr.org/alias/christopher-dutchyn" - name: "David B. Tucker" link: "https://researchr.org/alias/david-b.-tucker" - name: "Shriram Krishnamurthi" link: "http://www.cs.brown.edu/~sk/" year: "2006" doi: "http://dx.doi.org/10.1016/j.scico.2006.01.003" abstract: "Aspect-oriented software design will need to support languages with first-class and higher-order procedures, such as Ruby, Perl, ML and Scheme. These language features present both challenges and benefits for aspects. On the one hand, they force the designer to carefully address issues of scope that do not arise in first-order languages. On the other hand, these distinctions of scope make it possible to define a much richer variety of policies than first-order aspect languages permit. In this paper, we describe the subtleties of pointcuts and advice for higher-order languages, particularly Scheme. We then resolve these subtleties by alluding to traditional notions of scope. In particular, programmers can now define both dynamic aspects traditional to aop and static aspects that can capture common security-control paradigms. We provide an operational semantics, based on an extended ceks machine, that gives a formal account of dynamic and static aspects. We implement the language as an extension to Scheme. By exploiting two novel features of our Scheme system—continuation marks and language-defining macros—the implementation is lightweight and integrates well into the programmer’s toolkit." links: doi: "http://dx.doi.org/10.1016/j.scico.2006.01.003" tags: - "control systems" - "semantics" - "rule-based" - "Perl" - "formal semantics" - "language design" - "macros" - "AspectScheme" - "security" - "operational semantics" - "design" - "Ruby" researchr: "https://researchr.org/publication/DutchynTK06" cites: 0 citedby: 0 journal: "SCP" volume: "63" number: "3" pages: "207-239" kind: "article" key: "DutchynTK06" - title: "AspectJ(tm): Aspect-Oriented Programming in Java" author: - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2002" doi: "http://link.springer.de/link/service/series/0558/bibs/2591/25910001.htm" abstract: "Aspect-oriented programming (AOP) gives software developers a powerful new tool for structuring the design and code of software systems. AOP simplifies development of system aspects that previously were among the most difficult to handle, including failure handling strategies, synchronization policies, change propagation, security checking, distribution, policy enforcement and many others. AOP using AspectJ makes it possible to describe, in just one place in the system, the implementation of such crosscutting aspects. This reduces development time, improves software quality, and makes software more flexible. This talk will show what it is like to design and implement with AspectJ, and what implications this has for software developers in terms of time-to-market, software quality, and product flexibility. For more info about AOP and AspectJ go to http://aspectj.org/servlets/AJSite." links: doi: "http://link.springer.de/link/service/series/0558/bibs/2591/25910001.htm" tags: - "AspectJ" - "object-oriented programming" - "Java" - "synchronization" - "AOP" - "software product quality" - "security" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "change propagation" - "design" - "feature-oriented programming" researchr: "https://researchr.org/publication/Kiczales02" cites: 0 citedby: 0 pages: "1" booktitle: "jit" kind: "inproceedings" key: "Kiczales02" - title: "Back to the future: a retroactive study of aspect evolution in operating system code" author: - name: "Yvonne Coady" link: "https://researchr.org/alias/yvonne-coady" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2003" doi: "http://doi.acm.org/10.1145/643603.643609" links: doi: "http://doi.acm.org/10.1145/643603.643609" tags: - "object-oriented programming" - "operating system" - "AOP" - "aspect oriented programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/CoadyK03" cites: 0 citedby: 0 pages: "50-59" booktitle: "AOSD" kind: "inproceedings" key: "CoadyK03" - title: "Aspect-Oriented Programming" author: - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2000" doi: "http://doi.ieeecomputersociety.org/10.1109/TOOLS.2000.10031" links: doi: "http://doi.ieeecomputersociety.org/10.1109/TOOLS.2000.10031" tags: - "object-oriented programming" - "AOP" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/LopesK00a" cites: 0 citedby: 0 pages: "461-462" booktitle: "TOOLS" kind: "inproceedings" key: "LopesK00a" - title: "Recent Developments in Aspect" author: - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "1998" doi: "http://link.springer.de/link/service/series/0558/bibs/1543/15430398.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/1543/15430398.htm" tags: - "object-oriented programming" - "AOP" - "aspect oriented programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/LopesK98" cites: 0 citedby: 0 pages: "398-401" booktitle: "ECOOPW" kind: "inproceedings" key: "LopesK98" - title: "Separation of Concerns with Procedures, Annotations, Advice and Pointcuts" author: - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Mira Mezini" link: "https://researchr.org/alias/mira-mezini" year: "2005" doi: "http://dx.doi.org/10.1007/11531142_9" links: doi: "http://dx.doi.org/10.1007/11531142_9" tags: - "object-oriented programming" - "separation of concerns" - "AOP" - "aspect oriented programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/KiczalesM05" cites: 0 citedby: 0 pages: "195-213" booktitle: "ECOOP" kind: "inproceedings" key: "KiczalesM05" - title: "US Patent 6467086 Aspect-oriented programming" author: - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Lamping" link: "https://researchr.org/alias/lamping" - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Hugunin" link: "https://researchr.org/alias/hugunin" - name: "Hilsdale" link: "https://researchr.org/alias/hilsdale" - name: "Boyapati" link: "https://researchr.org/alias/boyapati" year: "2002" month: "october" doi: "http://www.patentstorm.us/patents/6467086.html" abstract: "The concept of a general purpose aspect is introduced where an aspect transparently forces cross-cutting behavior on object classes and other software entities. A reusable aspect is further described for use as part of an aspect library." links: doi: "http://www.patentstorm.us/patents/6467086.html" tags: - "object-oriented programming" - "meta programming" - "AOP" - "reuse" - "Patent" - "6467086" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "Meta-Environment" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/US+Patent+6467086" cites: 0 citedby: 0 howpublished: "Patent" kind: "misc" key: "US Patent 6467086" - title: "Using aspectC to improve the modularity of path-specific customization in operating system code" author: - name: "Yvonne Coady" link: "https://researchr.org/alias/yvonne-coady" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Michael J. Feeley" link: "https://researchr.org/alias/michael-j.-feeley" - name: "Greg Smolyn" link: "https://researchr.org/alias/greg-smolyn" year: "2001" doi: "http://doi.acm.org/10.1145/503209.503223" links: doi: "http://doi.acm.org/10.1145/503209.503223" tags: - "object-oriented programming" - "operating system" - "AOP" - "aspect oriented programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/CoadyKFS01" cites: 0 citedby: 0 pages: "88-98" booktitle: "ESEC/FSE" kind: "inproceedings" key: "CoadyKFS01" - title: "Design pattern implementation in Java and aspectJ" author: - name: "Jan Hannemann" link: "https://researchr.org/alias/jan-hannemann" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2002" doi: "http://doi.acm.org/10.1145/582419.582436" abstract: "AspectJ implementations of the GoF design patterns show modularity improvements in 17 of 23 cases. These improvements are manifested in terms of better code locality, reusability, composability, and (un)pluggability.The degree of improvement in implementation modularity varies, with the greatest improvement coming when the pattern solution structure involves crosscutting of some form, including one object playing multiple roles, many objects playing one role, or an object playing roles in multiple pattern instances." links: doi: "http://doi.acm.org/10.1145/582419.582436" tags: - "AspectJ" - "object-oriented programming" - "Java" - "meta programming" - "AOP" - "reuse" - "aspect oriented programming" - "subject-oriented programming" - "Meta-Environment" - "design" - "feature-oriented programming" - "meta-objects" researchr: "https://researchr.org/publication/HannemannK02" cites: 0 citedby: 0 pages: "161-173" booktitle: "OOPSLA" kind: "inproceedings" key: "HannemannK02" - title: "Aspects and/versus modularity the grand debate" author: - name: "Richard P. Gabriel" link: "http://www.dreamsongs.com/RPG.html" - name: "Guy L. Steele Jr." link: "http://research.sun.com/people/mybio.php?uid=25706" - name: "Friedrich Steimann" link: "http://www.fernuni-hagen.de/ps/team/friedrich.steimann.shtml" - name: "Jim Waldo" link: "https://researchr.org/alias/jim-waldo" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" - name: "Kevin Sullivan" link: "https://researchr.org/alias/kevin-sullivan" year: "2006" doi: "http://doi.acm.org/10.1145/1176617.1176749" links: doi: "http://doi.acm.org/10.1145/1176617.1176749" tags: - "object-oriented programming" - "AOP" - "Modularity" - "aspect oriented programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/GabrielSSWKS06" cites: 0 citedby: 0 pages: "935-936" booktitle: "OOPSLA" kind: "inproceedings" key: "GabrielSSWKS06" - title: "Aspect-Oriented Programming Workshop Report" author: - name: "Kim Mens" link: "http://www.info.ucl.ac.be/~km/MyResearchPages/research/" - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Bedir Tekinerdogan" link: "https://researchr.org/alias/bedir-tekinerdogan" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "1997" doi: "http://link.springer.de/link/service/series/0558/bibs/1357/13570483.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/1357/13570483.htm" tags: - "object-oriented programming" - "AOP" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/MensLTK97" cites: 0 citedby: 0 pages: "483-496" booktitle: "ECOOPW" kind: "inproceedings" key: "MensLTK97" - title: "Role-based refactoring of crosscutting concerns" author: - name: "Jan Hannemann" link: "https://researchr.org/alias/jan-hannemann" - name: "Gail C. Murphy" link: "https://researchr.org/alias/gail-c.-murphy" - name: "Gregor Kiczales" link: "http://people.cs.ubc.ca/~gregor/" year: "2005" doi: "http://doi.acm.org/10.1145/1052898.1052910" links: doi: "http://doi.acm.org/10.1145/1052898.1052910" tags: - "object-oriented programming" - "rule-based" - "AOP" - "refactoring" - "C++" - "aspect oriented programming" - "rule-based refactoring" - "subject-oriented programming" - "feature-oriented programming" researchr: "https://researchr.org/publication/HannemannMK05" cites: 0 citedby: 0 pages: "135-146" booktitle: "AOSD" kind: "inproceedings" key: "HannemannMK05"