publications: - title: "A comparison of compilation techniques for trace monitors with free variables" author: - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" year: "2007" doi: "http://doi.acm.org/10.1145/1297846.1297905" links: doi: "http://doi.acm.org/10.1145/1297846.1297905" researchr: "https://researchr.org/publication/AvgustinovTM07a" cites: 0 citedby: 0 pages: "821-822" booktitle: "Companion to the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2007, October 21-25, 2007, Montreal, Quebec, Canada" editor: - name: "Richard P. Gabriel" link: "http://www.dreamsongs.com/RPG.html" - name: "David F. Bacon" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/bacon.index.html" - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Guy L. Steele Jr." link: "http://research.sun.com/people/mybio.php?uid=25706" publisher: "ACM" isbn: "978-1-59593-865-7" kind: "inproceedings" key: "AvgustinovTM07a" - title: "Keynote Address: .QL for Source Code Analysis" author: - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Mathieu Verbaere" link: "https://researchr.org/alias/mathieu-verbaere" - name: "Elnar Hajiyev" link: "https://researchr.org/alias/elnar-hajiyev" - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Torbjörn Ekman" link: "http://progtools.comlab.ox.ac.uk/members/torbjorn" - name: "Neil Ongkingco" link: "https://researchr.org/alias/neil-ongkingco" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" year: "2007" doi: "http://dx.doi.org/10.1109/SCAM.2007.31" abstract: "Many tasks in source code analysis can be viewed as evaluating queries over a relational representation of the code. Here we present an object-oriented query language, named .QL, and demonstrate its use for general navigation, bug finding and enforcing coding conventions. We then focus on the particular problem of specifying metrics as queries." links: doi: "http://dx.doi.org/10.1109/SCAM.2007.31" tags: - "points-to analysis" - "analysis" - "source-to-source" - "Meta-Environment" - "open-source" - "meta-objects" - "query language" researchr: "https://researchr.org/publication/MoorVHAEOST07" cites: 0 citedby: 0 pages: "3-16" booktitle: "Seventh IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2007), September 30 - October 1, 2007, Paris, France" publisher: "IEEE" kind: "inproceedings" key: "MoorVHAEOST07" - title: "Making trace monitors feasible" author: - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" year: "2007" doi: "http://doi.acm.org/10.1145/1297027.1297070" links: doi: "http://doi.acm.org/10.1145/1297027.1297070" researchr: "https://researchr.org/publication/AvgustinovTM07" cites: 0 citedby: 0 pages: "589-608" booktitle: "Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2007, October 21-25, 2007, Montreal, Quebec, Canada" editor: - name: "Richard P. Gabriel" link: "http://www.dreamsongs.com/RPG.html" - name: "David F. Bacon" link: "http://domino.research.ibm.com/comm/research_people.nsf/pages/bacon.index.html" - name: "Cristina Videira Lopes" link: "http://www.ics.uci.edu/~lopes/" - name: "Guy L. Steele Jr." link: "http://research.sun.com/people/mybio.php?uid=25706" publisher: "ACM" isbn: "978-1-59593-786-5" kind: "inproceedings" key: "AvgustinovTM07" - title: "Adding open modules to AspectJ" author: - name: "Neil Ongkingco" link: "https://researchr.org/alias/neil-ongkingco" - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" - name: "Laurie J. Hendren" link: "http://www.sable.mcgill.ca/~hendren/" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" year: "2006" doi: "http://doi.acm.org/10.1145/1119655.1119664" links: doi: "http://doi.acm.org/10.1145/1119655.1119664" tags: - "AspectJ" - "source-to-source" - "open-source" researchr: "https://researchr.org/publication/OngkingcoATHMS06" cites: 0 citedby: 1 pages: "39-50" booktitle: "Proceedings of the 5th International Conference on Aspect-Oriented Software Development, AOSD 2006, Bonn, Germany, March 20-24, 2006" editor: - name: "Robert E. Filman" link: "https://researchr.org/alias/robert-e.-filman" publisher: "ACM" isbn: "1-59593-300-X" kind: "inproceedings" key: "OngkingcoATHMS06" - title: "On the Semantics of Matching Trace Monitoring Patterns" author: - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-77395-5_2" links: doi: "http://dx.doi.org/10.1007/978-3-540-77395-5_2" tags: - "semantics" - "pattern matching" researchr: "https://researchr.org/publication/AvgustinovTM07%3A0" cites: 0 citedby: 0 pages: "9-21" booktitle: "Runtime Verification, 7th International Workshop, RV 2007, Vancover, Canada, March 13, 2007, Revised Selected Papers" editor: - name: "Oleg Sokolsky" link: "https://researchr.org/alias/oleg-sokolsky" - name: "Serdar Tasiran" link: "https://researchr.org/alias/serdar-tasiran" volume: "4839" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "978-3-540-77394-8" kind: "inproceedings" key: "AvgustinovTM07:0" - title: "Adding trace matching with free variables to AspectJ" author: - name: "Chris Allan" link: "https://researchr.org/alias/chris-allan" - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Aske Simon Christensen" link: "https://researchr.org/alias/aske-simon-christensen" - name: "Laurie J. Hendren" link: "http://www.sable.mcgill.ca/~hendren/" - name: "Sascha Kuzins" link: "https://researchr.org/alias/sascha-kuzins" - name: "Ondřej Lhoták" link: "http://plg.uwaterloo.ca/~olhotak" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" year: "2005" doi: "http://doi.acm.org/10.1145/1094811.1094839" links: doi: "http://doi.acm.org/10.1145/1094811.1094839" tags: - "AspectJ" researchr: "https://researchr.org/publication/AllanACHKLMSST05" cites: 0 citedby: 0 pages: "345-364" booktitle: "Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2005, October 16-20, 2005, San Diego, CA, USA" editor: - name: "Ralph E. Johnson" link: "http://st-www.cs.illinois.edu/users/johnson/" - name: "Richard P. Gabriel" link: "http://www.dreamsongs.com/RPG.html" publisher: "ACM" isbn: "1-59593-031-0" kind: "inproceedings" key: "AllanACHKLMSST05" - title: "Adding magic to an optimising datalog compiler" author: - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" year: "2008" doi: "http://doi.acm.org/10.1145/1376616.1376673" abstract: "The magic-sets transformation is a useful technique for dramatically improving the performance of complex queries, but it has been observed that this transformation can also drastically reduce the performance of some queries. Successful implementations of magic in previous work require integration with the database optimiser to make appropriate decisions to guide the transformation (the sideways information passing strategy, or SIPS). This paper reports on the addition of the magic-sets transformation to a fully automatic optimising compiler from Datalog to SQL with no support from the database optimiser. We present an algorithm for making a good choice of SIPS using heuristics based on the sizes of relations. To achieve this, we define an abstract interpretation of Datalog programs to estimate the sizes of relations in the program. The effectiveness of our technique is evaluated over a substantial set of over a hundred queries, and in the context of the other optimisations performed by our compiler. It is shown that using the SIPS chosen by our algorithm, query performance is often significantly improved, as expected, but more importantly performance is never significantly degraded on queries that cannot benefit from magic." links: doi: "http://doi.acm.org/10.1145/1376616.1376673" tags: - "rule-based" - "SQL" - "compiler" - "database" - "context-aware" - "magic sets" - "Datalog" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/SereniAM08" cites: 0 citedby: 0 pages: "553-566" booktitle: "Proceedings of the ACM SIGMOD International Conference on Management of Data, SIGMOD 2008, Vancouver, BC, Canada, June 10-12, 2008" editor: - name: "Jason Tsong-Li Wang" link: "https://researchr.org/alias/jason-tsong-li-wang" publisher: "ACM" isbn: "978-1-60558-102-6" kind: "inproceedings" key: "SereniAM08" - title: "abc: an extensible AspectJ compiler" author: - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Aske Simon Christensen" link: "https://researchr.org/alias/aske-simon-christensen" - name: "Laurie J. Hendren" link: "http://www.sable.mcgill.ca/~hendren/" - name: "Sascha Kuzins" link: "https://researchr.org/alias/sascha-kuzins" - name: "Jennifer Lhoták" link: "https://researchr.org/alias/jennifer-lhot%C3%A1k" - name: "Ondřej Lhoták" link: "http://plg.uwaterloo.ca/~olhotak" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" year: "2005" doi: "http://doi.acm.org/10.1145/1052898.1052906" links: doi: "http://doi.acm.org/10.1145/1052898.1052906" successor: "https://researchr.org/publication/AvgustinovCHKLLMSST06" tags: - "AspectJ" - "compiler" researchr: "https://researchr.org/publication/AvgustinovCHKLLMSST05" cites: 0 citedby: 0 pages: "87-98" booktitle: "Proceedings of the 4th International Conference on Aspect-Oriented Software Development, AOSD 2005, Chicago, Illinois, USA, March 14-18, 2005" editor: - name: "Mira Mezini" link: "https://researchr.org/alias/mira-mezini" - name: "Peri L. Tarr" link: "https://researchr.org/alias/peri-l.-tarr" publisher: "ACM" isbn: "1-59593-042-6" kind: "inproceedings" key: "AvgustinovCHKLLMSST05" - title: "Optimising aspectJ" author: - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Aske Simon Christensen" link: "https://researchr.org/alias/aske-simon-christensen" - name: "Laurie J. Hendren" link: "http://www.sable.mcgill.ca/~hendren/" - name: "Sascha Kuzins" link: "https://researchr.org/alias/sascha-kuzins" - name: "Jennifer Lhoták" link: "https://researchr.org/alias/jennifer-lhot%C3%A1k" - name: "Ondřej Lhoták" link: "http://plg.uwaterloo.ca/~olhotak" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" year: "2005" doi: "http://doi.acm.org/10.1145/1065010.1065026" links: doi: "http://doi.acm.org/10.1145/1065010.1065026" tags: - "AspectJ" researchr: "https://researchr.org/publication/AvgustinovCHKLLMSST05%3A0" cites: 0 citedby: 0 pages: "117-128" booktitle: "Proceedings of the ACM SIGPLAN 2005 Conference on Programming Language Design and Implementation, Chicago, IL, USA, June 12-15, 2005" editor: - name: "Vivek Sarkar" link: "https://researchr.org/alias/vivek-sarkar" - name: "Mary W. Hall" link: "https://researchr.org/alias/mary-w.-hall" publisher: "ACM" isbn: "1-59593-056-6" kind: "inproceedings" key: "AvgustinovCHKLLMSST05:0" - title: "Semantics of static pointcuts in aspectJ" author: - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Elnar Hajiyev" link: "https://researchr.org/alias/elnar-hajiyev" - name: "Neil Ongkingco" link: "https://researchr.org/alias/neil-ongkingco" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" - name: "Mathieu Verbaere" link: "https://researchr.org/alias/mathieu-verbaere" year: "2007" doi: "http://doi.acm.org/10.1145/1190216.1190221" abstract: "In aspect-oriented programming, one can intercept events by writing patterns called pointcuts. The pointcut language of the most popular aspect-oriented programming language, AspectJ, allows the expression of highly complex properties of the static program structure.We present the first rigorous semantics of the AspectJ pointcut language, by translating static patterns into safe ( i.e. range-restricted and stratified) Datalog queries. Safe Datalog is a logic language like Prolog, but it does not have data structures; consequently it has a straightforward least fixpoint semantics and all queries terminate.The translation from pointcuts to safe Datalog consists of a set of simple conditional rewrite rules, implemented using the Stratego system. The resulting queries are themselves executable with the CodeQuest system. We present experiments indicating that direct execution of our semantics is not prohibitively expensive." links: doi: "http://doi.acm.org/10.1145/1190216.1190221" tags: - "programming languages" - "AspectJ" - "object-oriented programming" - "semantics" - "Prolog" - "rule-based" - "translation" - "data-flow language" - "pattern language" - "graph query" - "data-flow programming" - "data-flow" - "graph-rewriting" - "rules" - "writing" - "logic programming" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "logic" - "rewriting logic" - "rewriting" - "Datalog" - "feature-oriented programming" - "Stratego" - "query language" researchr: "https://researchr.org/publication/AvgustinovHOMSTV07" cites: 1 citedby: 0 pages: "11-23" booktitle: "Proceedings of the 34th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2007, Nice, France, January 17-19, 2007" editor: - name: "Martin Hofmann" link: "https://researchr.org/alias/martin-hofmann" - name: "Matthias Felleisen" link: "http://www.ccs.neu.edu/home/matthias/" publisher: "ACM" isbn: "1-59593-575-4" kind: "inproceedings" key: "AvgustinovHOMSTV07" - title: "Aspects and Data Refinement" author: - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Eric Bodden" link: "http://www.bodden.de/" - name: "Elnar Hajiyev" link: "https://researchr.org/alias/elnar-hajiyev" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Neil Ongkingco" link: "https://researchr.org/alias/neil-ongkingco" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" year: "2006" doi: "http://dx.doi.org/10.1007/11783596_3" links: doi: "http://dx.doi.org/10.1007/11783596_3" tags: - "refinement" - "data-flow" researchr: "https://researchr.org/publication/AvgustinovBHMOSST06" cites: 0 citedby: 0 pages: "5-9" booktitle: "Mathematics of Program Construction, 8th International Conference, MPC 2006, Kuressaare, Estonia, July 3-5, 2006, Proceedings" editor: - name: "Tarmo Uustalu" link: "https://researchr.org/alias/tarmo-uustalu" volume: "4014" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-35631-2" kind: "inproceedings" key: "AvgustinovBHMOSST06" - title: ".QL: Object-Oriented Queries Made Easy" author: - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Mathieu Verbaere" link: "https://researchr.org/alias/mathieu-verbaere" - name: "Elnar Hajiyev" link: "https://researchr.org/alias/elnar-hajiyev" - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Torbjörn Ekman" link: "http://progtools.comlab.ox.ac.uk/members/torbjorn" - name: "Neil Ongkingco" link: "https://researchr.org/alias/neil-ongkingco" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" year: "2007" doi: "http://dx.doi.org/10.1007/978-3-540-88643-3_3" abstract: "These notes are an introduction to .QL, an object-oriented query language for any type of structured data. We illustrate the use of .QL in assessing software quality, namely to find bugs, to compute metrics and to enforce coding conventions. The class mechanism of .QL is discussed in depth, and we demonstrate how it can be used to build libraries of reusable queries. " links: doi: "http://dx.doi.org/10.1007/978-3-540-88643-3_3" tags: - "data-flow language" - "reuse" - "data-flow" - "Meta-Environment" - "meta-objects" - "query language" researchr: "https://researchr.org/publication/MoorSVHAEOT07" cites: 1 citedby: 0 pages: "78-133" booktitle: "Generative and Transformational Techniques in Software Engineering II, International Summer School, GTTSE 2007" editor: - name: "Ralf Lämmel" link: "http://www.uni-koblenz.de/~laemmel/Site/Home.html" - name: "Joost Visser" link: "http://www.di.uminho.pt/~joost.visser/" - name: "João Saraiva" link: "http://di.uminho.pt/~jas" volume: "5235" series: "Lecture Notes in Computer Science" address: "Braga, Portugal" publisher: "Springer" isbn: "978-3-540-88642-6" kind: "inproceedings" key: "MoorSVHAEOT07" - title: "abc the aspectBench compiler for aspectJ a workbench for aspect-oriented programming language and compilers research" author: - name: "Chris Allan" link: "https://researchr.org/alias/chris-allan" - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Aske Simon Christensen" link: "https://researchr.org/alias/aske-simon-christensen" - name: "Bruno Dufour" link: "https://researchr.org/alias/bruno-dufour" - name: "Christopher Goard" link: "https://researchr.org/alias/christopher-goard" - name: "Laurie J. Hendren" link: "http://www.sable.mcgill.ca/~hendren/" - name: "Sascha Kuzins" link: "https://researchr.org/alias/sascha-kuzins" - name: "Jennifer Lhoták" link: "https://researchr.org/alias/jennifer-lhot%C3%A1k" - name: "Ondřej Lhoták" link: "http://plg.uwaterloo.ca/~olhotak" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" - name: "Clark Verbrugge" link: "https://researchr.org/alias/clark-verbrugge" year: "2005" doi: "http://doi.acm.org/10.1145/1094855.1094877" links: doi: "http://doi.acm.org/10.1145/1094855.1094877" tags: - "programming languages" - "workbench" - "AspectJ" - "object-oriented programming" - "aspect oriented programming" - "compiler" - "programming" - "subject-oriented programming" - "language workbench" - "feature-oriented programming" researchr: "https://researchr.org/publication/AllanACDGHKLLMSSTV05" cites: 0 citedby: 0 pages: "88-89" booktitle: "Companion to the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2005, October 16-20, 2005, San Diego, CA, USA" editor: - name: "Ralph E. Johnson" link: "http://st-www.cs.illinois.edu/users/johnson/" - name: "Richard P. Gabriel" link: "https://researchr.org/alias/richard-p.-gabriel" publisher: "ACM" isbn: "1-59593-193-7" kind: "inproceedings" key: "AllanACDGHKLLMSSTV05" - title: "abc: An Extensible AspectJ Compiler" author: - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Aske Simon Christensen" link: "https://researchr.org/alias/aske-simon-christensen" - name: "Laurie J. Hendren" link: "http://www.sable.mcgill.ca/~hendren/" - name: "Sascha Kuzins" link: "https://researchr.org/alias/sascha-kuzins" - name: "Jennifer Lhoták" link: "https://researchr.org/alias/jennifer-lhot%C3%A1k" - name: "Ondřej Lhoták" link: "http://plg.uwaterloo.ca/~olhotak" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" year: "2006" doi: "http://dx.doi.org/10.1007/11687061_9" abstract: " Research in the design of aspect-oriented programming languages requires a workbench that facilitates easy experimentation with new language features and implementation techniques. In particular, new features for AspectJ have been proposed that require extensions in many dimensions: syntax, type checking and code generation, as well as data flow and control flow analyses. The AspectBench Compiler (abc) is an implementation of such a workbench. The base version of abc implements the full AspectJ language. Its front end is built using the Polyglot framework, as a modular extension of the Java language. The use of Polyglot gives flexibility of syntax and type checking. The back end is built using the Soot framework, to give modular code generation and analyses. In this paper, we outline the design of abc, focusing mostly on how the design supports extensibility. We then provide a general overview of how to use abc to implement an extension. We illustrate the extension mechanisms of abc through a number of small, but nontrivial, examples. We then proceed to contrast the design goals of abc with those of the original AspectJ compiler, and how these different goals have led to different design decisions. Finally, we review a few examples of projects by others that extend abc in interesting ways. " links: doi: "http://dx.doi.org/10.1007/11687061_9" tags: - "programming languages" - "workbench" - "AspectJ" - "object-oriented programming" - "rule-based" - "Java" - "data-flow language" - "design research" - "language design" - "data-flow programming" - "data-flow" - "code generation" - "type checking" - "reviewing" - "aspect oriented programming" - "compiler" - "programming" - "subject-oriented programming" - "language workbench" - "design" - "extensible language" - "feature-oriented programming" researchr: "https://researchr.org/publication/AvgustinovCHKLLMSST06" cites: 0 citedby: 1 journal: "Transactions on Aspect-Oriented Software Development" pages: "293-334" kind: "article" key: "AvgustinovCHKLLMSST06" - title: "Efficient trace monitoring" author: - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" - name: "Eric Bodden" link: "http://www.bodden.de/" - name: "Laurie J. Hendren" link: "http://www.sable.mcgill.ca/~hendren/" - name: "Ondřej Lhoták" link: "http://plg.uwaterloo.ca/~olhotak" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Neil Ongkingco" link: "https://researchr.org/alias/neil-ongkingco" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" year: "2006" doi: "http://doi.acm.org/10.1145/1176617.1176673" links: doi: "http://doi.acm.org/10.1145/1176617.1176673" researchr: "https://researchr.org/publication/AvgustinovTBHLMOS06" cites: 0 citedby: 0 pages: "685-686" booktitle: "Companion to the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, October 22-26, 2006, Portland, Oregon, USA" editor: - name: "Peri L. Tarr" link: "https://researchr.org/alias/peri-l.-tarr" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" publisher: "ACM" isbn: "1-59593-491-X" kind: "inproceedings" key: "AvgustinovTBHLMOS06" - title: "Datalog as a pointcut language in aspect-oriented programming" author: - name: "Elnar Hajiyev" link: "https://researchr.org/alias/elnar-hajiyev" - name: "Neil Ongkingco" link: "https://researchr.org/alias/neil-ongkingco" - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" - name: "Mathieu Verbaere" link: "https://researchr.org/alias/mathieu-verbaere" year: "2006" doi: "http://doi.acm.org/10.1145/1176617.1176664" links: doi: "http://doi.acm.org/10.1145/1176617.1176664" tags: - "programming languages" - "object-oriented programming" - "aspect oriented programming" - "programming" - "subject-oriented programming" - "Datalog" - "feature-oriented programming" researchr: "https://researchr.org/publication/HajiyevOAMSTV06" cites: 0 citedby: 0 pages: "667-668" booktitle: "Companion to the 21th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2006, October 22-26, 2006, Portland, Oregon, USA" editor: - name: "Peri L. Tarr" link: "https://researchr.org/alias/peri-l.-tarr" - name: "William R. Cook" link: "http://www.cs.utexas.edu/~wcook/" publisher: "ACM" isbn: "1-59593-491-X" kind: "inproceedings" key: "HajiyevOAMSTV06" - title: "abc: The AspectBench Compiler for AspectJ" author: - name: "Chris Allan" link: "https://researchr.org/alias/chris-allan" - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Aske Simon Christensen" link: "https://researchr.org/alias/aske-simon-christensen" - name: "Laurie J. Hendren" link: "http://www.sable.mcgill.ca/~hendren/" - name: "Sascha Kuzins" link: "https://researchr.org/alias/sascha-kuzins" - name: "Jennifer Lhoták" link: "https://researchr.org/alias/jennifer-lhot%C3%A1k" - name: "Ondřej Lhoták" link: "http://plg.uwaterloo.ca/~olhotak" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" year: "2005" doi: "http://dx.doi.org/10.1007/11561347_2" links: doi: "http://dx.doi.org/10.1007/11561347_2" tags: - "AspectJ" - "compiler" researchr: "https://researchr.org/publication/AllanACHKLLMSST05" cites: 0 citedby: 0 pages: "10-16" booktitle: "Generative Programming and Component Engineering, 4th International Conference, GPCE 2005" editor: - name: "Robert Glück" link: "http://www.diku.dk/hjemmesider/ansatte/glueck/" - name: "Michael R. Lowry" link: "https://researchr.org/alias/michael-r.-lowry" volume: "3676" series: "Lecture Notes in Computer Science" address: "Tallinn, Estonia" publisher: "Springer" isbn: "3-540-29138-5" kind: "inproceedings" key: "AllanACHKLLMSST05" - title: "Efficient local type inference" author: - name: "Ben Bellamy" link: "https://researchr.org/alias/ben-bellamy" - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" year: "2008" doi: "http://doi.acm.org/10.1145/1449764.1449802" abstract: "Inference of static types for local variables in Java bytecode is the first step of any serious tool that manipulates bytecode, be it for decompilation, transformation or analysis. It is important, therefore, to perform that step as accurately and efficiently as possible. Previous work has sought to give solutions with good worst-case complexity. We present a novel algorithm, which is optimised for the common case rather than worst-case performance. It works by first finding a set of minimal typings that are valid for all assignments, and then checking whether these minimal typings satisfy all uses. Unlike previous algorithms, it does not explicitly build a data structure of type constraints, and it is easy to implement efficiently. We prove that the algorithm produces a typing that is both sound (obeying the rules of the language) and as tight as possible. We then go on to present extensive experiments, comparing the results of the new algorithm against the previously best known method. The experiments include bytecode that is generated in other ways than compilation of Java source. The new algorithm is always faster, typically by a factor 6, but on some real benchmarks the gain is as high as a factor of 92. Furthermore, whereas that previous method is sometimes suboptimal, our algorithm always returns a tightest possible type. We also discuss in detail how we handle primitive types, which is a difficult issue due to the discrepancy in their treatment between Java bytecode and Java source. For the application to decompilation, however, it is very important to handle this correctly." links: doi: "http://doi.acm.org/10.1145/1449764.1449802" tags: - "model-to-model transformation" - "type inference" - "rule-based" - "Java" - "data-flow language" - "model checking" - "type soundness" - "transformation language" - "points-to analysis" - "analysis" - "static analysis" - "constraints" - "data-flow" - "source-to-source" - "rules" - "type checking" - "model transformation" - "decompilation" - "data-flow analysis" - "local type inference" - "open-source" - "transformation" researchr: "https://researchr.org/publication/BellamyAMS08" cites: 0 citedby: 0 pages: "475-492" booktitle: "Proceedings of the 23rd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2008, October 19-23, 2008, Nashville, TN, USA" editor: - name: "Gail E. Harris" link: "https://researchr.org/alias/gail-e.-harris" publisher: "ACM" isbn: "978-1-60558-215-3" kind: "inproceedings" key: "BellamyAMS08" - title: "Type inference for datalog and its application to query optimisation" author: - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Mathieu Verbaere" link: "https://researchr.org/alias/mathieu-verbaere" year: "2008" doi: "http://doi.acm.org/10.1145/1376916.1376957" abstract: "Certain variants of object-oriented Datalog can be compiled to Datalog with negation. We seek to apply optimisations akin to virtual method resolution (a well-known technique in compiling Java and other OO languages) to improve efficiency of the resulting Datalog programs. The effectiveness of such optimisations strongly depends on the precision of the underlying type inference algorithm. Previous work on type inference for Datalog has focussed on Cartesian abstractions, where the type of each field is computed separately. Such Cartesian type inference is inherently imprecise in the presence of field equalities. We propose a type system where equalities are tracked, and present a type inference algorithm. The algorithm is proved sound. We also prove that it is optimal for Datalog without negation, in the sense that the inferred type is as tight as possible. Extensive experiments with our type-based optimisations, in a commercial implementation of object-oriented Datalog, confirm the benefits of this non-Cartesian type inference algorithm." links: doi: "http://doi.acm.org/10.1145/1376916.1376957" tags: - "programming languages" - "object-oriented programming" - "type inference" - "rule-based" - "Java" - "meta programming" - "type soundness" - "type system" - "compiler" - "subject-oriented programming" - "abstraction" - "Meta-Environment" - "Datalog" - "feature-oriented programming" - "meta-objects" - "query language" researchr: "https://researchr.org/publication/MoorSAV08" cites: 0 citedby: 0 pages: "291-300" booktitle: "Proceedings of the Twenty-Seventh ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems, PODS 2008, June 9-11, 2008, Vancouver, BC, Canada" editor: - name: "Maurizio Lenzerini" link: "https://researchr.org/alias/maurizio-lenzerini" - name: "Domenico Lembo" link: "https://researchr.org/alias/domenico-lembo" publisher: "ACM" isbn: "978-1-60558-108-8" kind: "inproceedings" key: "MoorSAV08" - title: "Aspects for Trace Monitoring" author: - name: "Pavel Avgustinov" link: "http://www.comlab.ox.ac.uk/people/pavel.avgustinov/" - name: "Eric Bodden" link: "http://www.bodden.de/" - name: "Elnar Hajiyev" link: "https://researchr.org/alias/elnar-hajiyev" - name: "Laurie J. Hendren" link: "http://www.sable.mcgill.ca/~hendren/" - name: "Ondřej Lhoták" link: "http://plg.uwaterloo.ca/~olhotak" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Neil Ongkingco" link: "https://researchr.org/alias/neil-ongkingco" - name: "Damien Sereni" link: "http://metacomp.comlab.ox.ac.uk/Members/damien" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" - name: "Julian Tibble" link: "https://researchr.org/alias/julian-tibble" - name: "Mathieu Verbaere" link: "https://researchr.org/alias/mathieu-verbaere" year: "2006" doi: "http://dx.doi.org/10.1007/11940197_2" links: doi: "http://dx.doi.org/10.1007/11940197_2" researchr: "https://researchr.org/publication/AvgustinovBHHLMOSSTV06" cites: 0 citedby: 0 pages: "20-39" booktitle: "Formal Approaches to Software Testing and Runtime Verification, First Combined International Workshops, FATES 2006 and RV 2006, Seattle, WA, USA, August 15-16, 2006, Revised Selected Papers" editor: - name: "Klaus Havelund" link: "https://researchr.org/alias/klaus-havelund" - name: "Manuel Núñez" link: "https://researchr.org/alias/manuel-n%C3%BA%C3%B1ez" - name: "Grigore Rosu" link: "http://fsl.cs.uiuc.edu/~grosu/" - name: "Burkhart Wolff" link: "https://researchr.org/alias/burkhart-wolff" volume: "4262" series: "Lecture Notes in Computer Science" publisher: "Springer" isbn: "3-540-49699-8" kind: "inproceedings" key: "AvgustinovBHHLMOSSTV06"