abc is a joint project between the Programming Tools Group at Oxford University, UK and the Sable Research Group at McGill University, Quebec.
abc is built on a number of existing efforts:
- AspectJ language design <http://www.aspectj.org>
- ajc runtime library and testing harness <http://www.aspectj.org>
- JastAdd, an exttensible compiler construction framework <http://jastadd.org>
- Polyglot, an extensible compiler framework for Java <http://www.cs.cornell.edu/Projects/polyglot/>
- Soot, a Java optimisation framework <http://www.sable.mcgill.ca/soot/>
- Jedd, a Java extension for Decision Diagrams <http://www.sable.mcgill.ca/jedd/>
- Paddle, a BDD-based analysis toolkit for Java <http://www.sable.mcgill.ca/paddle>
- JavaBDD, a BDD package for Java <http://javabdd.sourceforge.net/>
In alphabetical order of surname, the following people have contributed directly to abc:
Chris Allan <christopher.allan at somerville.oxford.ac.uk>
- Original tracematches design
Pavel Avgustinov <pavel.avgustinov at magdalen.oxford.ac.uk>
- Designed and implemented the abc test harness
- Implemented privileged aspects along with a generic accessor method infrastructure
- Re-wrote the lexer to make an LGPL'd version
- Improved Soot's handling of large methods
- Co-implemented tracematches in abc
- Co-implemented JastAdd frontend for abc (abc-ja)
Aske Simon Christensen <aske at brics.dk>
- Designed the overall compiler structure, and the connection between the frontend and backend
- Designed and implemented the pattern matcher
- Implemented declare parents and declare precedence
Torbjorn Ekman <torbjorn.ekman at comlab.ox.ac.uk>
- Co-implemented JastAdd frontend for abc (abc-ja)
Christopher Goard <cgoard at cs.mcgill.ca>
- prototype implementation of cflow counters in ajc
Laurie Hendren <hendren at sable.mcgill.ca>
- Project leader (McGill)
- Grammar, Scanner and Parser
- Initial weaver
John Jorgensen <jorgnsn at lcd.uregina.ca>
- Soot support
Sascha Kuzins <sascha.kuzins at comlab.ox.ac.uk>
- Designed and implemented the around weaver
Jennifer Lhotak <jlhotak at sable.mcgill.ca>
- Java to Jimple
- initial weaver
Ondrej Lhotak <olhotak at sable.mcgill.ca>
- initial weaver
- Work on Soot class and method handling
- interprocedural cflow analyses
Oege de Moor <oege at comlab.ox.ac.uk>
- Project leader
- Implemented frontend
- Designed and implemented intertype weaver
- Designed and implemented large parts of the tracematch analyses
Neil Ongkingco
- Designed and implemented open modules for AspectJ.
Jane Panangaden
- Poinsettiacus logo design
- General consultant
Damien Sereni <dsereni at comlab.ox.ac.uk>
- Simple cflow optimisations (counters, instance sharing)
Ganesh Sittampalam <ganesh at earth.li>
- Designed and implemented pointcut matcher
- Implemented large portions of the weaver
- Various minor frontend fixes
- Some small backend optimisations
- Work on Soot class handling
Julian Tibble <julian.tibble at worcester.oxford.ac.uk>
- EAJ language
- Co-implemented tracematches in abc
- Co-implemented JastAdd frontend for abc (abc-ja)