The Microsoft Bytecode Engineering Library (MBEL) is a tool for parsing, creating, editing, and rewriting .NET executables and libraries. It is implemented completely in the Java programming language, which facilitates portability across different systems. The objects defined closely resemble the metadata structures defined in the ECMA-335 specification. Among the many uses of MBEL are code analysis, optimization, obfuscation, and watermarking.
The DObject Library C++ is a Java-like library that acts as a bridge between the C++ and the Java worlds. It offers a wide range of the Java facilities without losing the power of C++. It offers naming convention that is similar to the Java language, smart pointers emulating Java references, and classes emulating Java arrays.
CMI is an optimizing frontend for gcc which allows gcc to inline across module boundaries without requiring you to put inline functions in header files or even mark inline functions for inlining. It makes your code go faster, makes your code smaller, makes your embedded software use less stack space, is a preprocessor for gcc, supports most gcc extensions, and is able to deal with such notoriously tricky code as the glibc header files. It works by merging multiple C files into one file, topologically sorting the definitions so that definitions come before uses, and marks functions as inline. It controls code bloat by deleting dead code and inlining up until a user-specified budget is reached. You can use user-specified heuristics to select which functions to inline (it includes a tool which uses gprof output to choose inlinings to illustrate this).
Invicta is an open-source build management tool. Using simple project definition files, it generates powerful build scripts (Apache ANTs) while hiding their complexity. Furthermore, Invicta is a modular framework that allows advanced developers add their own customized types of components, which means writing once ANT code that can later be used by all developers in their project or company simply by specifying the new type name.
Perthon converts Python source code to human- readable Perl 5.x source code. It makes use of Damian Conway's Parse::RecDescent for parsing, and aims to reimplement the Python language as specified in the Python Reference Manual and BNF grammar. Perthon is similar to Jython (www.jython.org), which reimplements Python on the JVM, except that Perthon works at the source code (not byte code) level. Perthon does the reverse of Bridgekeeper (http://www.crazy-compilers.com/bridgekeeper/), which attempts to solve the (much harder) problem of Perl-to-Python source code machine translation.
Brook for GPUs is a compiler and runtime implementation of the Brook stream programming language for modern graphics hardware. The goals for this project are to demonstrate general purpose programing on GPUs, to provide a useful tool for developers who want to run applications on GPUs, and to research the stream language programming model, streaming applications, and system implementations.
Happy is a parser generator system for Haskell, similar to the tool 'yacc' for C. Like yacc, it takes a file containing an annotated BNF specification of a grammar and produces a Haskell module containing a parser for the grammar. It is flexible: you can have several Happy parsers in the same program, and several entry points to a single grammar. It can work in conjunction with a lexical analyser supplied by the user (either hand-written or generated by another program), or it can parse a stream of characters directly (but this isn't practical in most cases).