Third party software used by Compose*
As with most large software projects not everything in Compose* was written from scratch. This page gives an overview of all the 3rd party software used by the various parts of Compose*.
Software used by the main part of the Compose* project, and thus used by all distributions.
- Groove: a graph transformation system. It is used by Compose* to construct flow and execution models of the composition filter specifications. The resulting models are used for static analysis and to create the "inline" filter code.
- ANTLR: a parser generator. Used to create the parser for the composition filter specification.
- KernelProlog: a java based prolog engine. Prolog is used as pointcut language in Compose*.
- Log4j: a logging library. Used to create nice Compose* compiler progress output.
Additional software used by the Java frontend.
- Javassist: used as weaver to replace certain function calls with calls to the composition filter interpreter.
Additional software used in StarLight.
- Cecil: a .NET byte code manipulator. Used as base for the weaver.
- XMLBeans: used for communication during the compiler process between the .NET part of StarLight and the Java based core of Compose*.
Additional software used by the C frontend.
- WeaveC (ASML): a weaver for ANSI-C. This software is, at the moment of writing, not freely available.
This software is used by the build and testing system of Compose*.
- ANT: a build system. The whole build and testing system in Compose* is defined in ANT. For starlight certain tasks are performed by msbuild (through an ANT interface). Various custom tasks have been developed for the Compose* project.
- CruiseControl: a continuous integration server.
- Eclipse: the IDE used for all Java development.
- Microsoft Visual Studio 2005: used for C# development.
- FindBugs: a static Java byte code analyser, very useful to find (possible) bugs in the code.
- CheckStyle: used to enforce/check the codeing style. Also used to detect possible bugs.
- FxCop: similar to FindBugs, except for .NET bytecode.
- jUnit: unit testing framework for Java.
- NUnit: unit testing frameowkr for .NET.
- Windows Installer XML: used to generate the installer for Starlight.
- SVNKit: a pure Java based SVN library with ANT bindings. It is used for various build tasks.