publications: - title: "Critical sets for dihedral groups" author: - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" - name: "A. Donald Keedwell" link: "https://researchr.org/alias/a.-donald-keedwell" year: "2001" researchr: "https://researchr.org/publication/SittampalamK01" cites: 0 citedby: 0 journal: "arscom" volume: "59" kind: "article" key: "SittampalamK01" - title: "Incremental execution of transformation specifications" author: - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Ken Friis Larsen" link: "https://researchr.org/alias/ken-friis-larsen" year: "2004" doi: "http://doi.acm.org/10.1145/964001.964004" links: doi: "http://doi.acm.org/10.1145/964001.964004" tags: - "incremental execution" - "incremental" - "transformation" researchr: "https://researchr.org/publication/SittampalamML04" cites: 0 citedby: 0 pages: "26-38" booktitle: "POPL" kind: "inproceedings" key: "SittampalamML04" - title: "Generic Program Transformation" author: - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" year: "1998" tags: - "generic programming" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/MoorS98" cites: 0 citedby: 0 pages: "116-149" booktitle: "afp" kind: "inproceedings" key: "MoorS98" - 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: "AOSD" kind: "inproceedings" key: "OngkingcoATHMS06" - 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: "mpc" kind: "inproceedings" key: "AvgustinovBHMOSST06" - title: "Higher Order Matching for Program Transformation" author: - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" year: "1999" tags: - "higher-order transformations" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/MoorS99" cites: 0 citedby: 0 pages: "209-224" booktitle: "FLOPS" kind: "inproceedings" key: "MoorS99" - 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: "GPCE" kind: "inproceedings" key: "AllanACHKLLMSST05" - 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: "OOPSLA" kind: "inproceedings" key: "AvgustinovTBHLMOS06" - 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: "TAOSD" pages: "293-334" kind: "article" key: "AvgustinovCHKLLMSST06" - title: "Paradise: a two-stage DSL embedded in Haskell" author: - name: "Lennart Augustsson" link: "https://researchr.org/alias/lennart-augustsson" - name: "Howard Mansell" link: "https://researchr.org/alias/howard-mansell" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" year: "2008" doi: "http://doi.acm.org/10.1145/1411204.1411236" links: doi: "http://doi.acm.org/10.1145/1411204.1411236" tags: - "Haskell" - "DSL" researchr: "https://researchr.org/publication/AugustssonMS08" cites: 0 citedby: 0 pages: "225-228" booktitle: "ICFP" kind: "inproceedings" key: "AugustssonMS08" - 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: "AOSD" kind: "inproceedings" key: "AvgustinovCHKLLMSST05" - title: "Measuring the dynamic behaviour of AspectJ programs" author: - 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: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" - name: "Clark Verbrugge" link: "https://researchr.org/alias/clark-verbrugge" year: "2004" doi: "http://doi.acm.org/10.1145/1028976.1028990" links: doi: "http://doi.acm.org/10.1145/1028976.1028990" tags: - "AspectJ" researchr: "https://researchr.org/publication/DufourGHMSV04" cites: 0 citedby: 0 pages: "150-169" booktitle: "OOPSLA" kind: "inproceedings" key: "DufourGHMSV04" - title: "Higher-Order Pattern Matching for Automatically Applying Fusion Transformations" author: - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" year: "2001" doi: "http://link.springer.de/link/service/series/0558/bibs/2053/20530218.htm" links: doi: "http://link.springer.de/link/service/series/0558/bibs/2053/20530218.htm" tags: - "pattern matching" - "higher-order transformations" - "transformation" researchr: "https://researchr.org/publication/SittampalamM01" cites: 0 citedby: 0 pages: "218-237" booktitle: "pado" kind: "inproceedings" key: "SittampalamM01" - 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: "OOPSLA" kind: "inproceedings" key: "AllanACHKLMSST05" - title: "Higher-order matching for program transformation" author: - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" year: "2001" doi: "http://dx.doi.org/10.1016/S0304-3975(00)00402-3" links: doi: "http://dx.doi.org/10.1016/S0304-3975(00)00402-3" tags: - "higher-order transformations" - "transformation" - "program transformation" researchr: "https://researchr.org/publication/MoorS01" cites: 0 citedby: 0 journal: "TCS" volume: "269" number: "1-2" pages: "135-162" kind: "article" key: "MoorS01" - 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: "OOPSLA" kind: "inproceedings" key: "AllanACDGHKLLMSSTV05" - 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: "fates" kind: "inproceedings" key: "AvgustinovBHHLMOSSTV06" - 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: "PLDI" kind: "inproceedings" key: "AvgustinovCHKLLMSST05:0" - title: "Transforming the .NET intermediate language using path logic programming" author: - name: "Stephen Drape" link: "https://researchr.org/alias/stephen-drape" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" year: "2002" doi: "http://doi.acm.org/10.1145/571157.571171" links: doi: "http://doi.acm.org/10.1145/571157.571171" tags: - "programming languages" - "logic programming" - "programming" - "logic" researchr: "https://researchr.org/publication/DrapeMS02" cites: 1 citedby: 0 pages: "133-144" booktitle: "ppdp" kind: "inproceedings" key: "DrapeMS02" - title: "Intentional Programming: a Host of Language Features" author: - name: "Eric {Van Wyk}" link: "http://www-users.cs.umn.edu/~evw/" - name: "Oege de Moor" link: "http://progtools.comlab.ox.ac.uk/members/oege" - name: "Ganesh Sittampalam" link: "http://www.earth.li/~ganesh/" - name: "Ivan Sanabria Piretti" link: "https://researchr.org/alias/ivan-sanabria-piretti" - name: "Kevin Backhouse" link: "https://researchr.org/alias/kevin-backhouse" - name: "Paul Kwiatkowski" link: "https://researchr.org/alias/paul-kwiatkowski" year: "2001" doi: "http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.20.5286" links: doi: "http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.20.5286" tags: - "programming languages" - "programming" researchr: "https://researchr.org/publication/Wyk01intentionalprogramming%3A" cites: 0 citedby: 0 institution: "Oxford University Computing Laboratory " address: "Wolfson Building, Parks Road, Oxford OX1 3QD" kind: "techreport" key: "Wyk01intentionalprogramming:"