Bernoulli Compiler Construction Toolkit

Bernoulli Compiler Framework is an open, robust tool library, developed mainly for the purpose of facilitating compiler development. Although initially it was intended to be an internal instrument for research, design and development in our group, it seems to be general enough to hope that it will be of use to other people in the entire compiler and programming language research communities. Its main idea is to be used as a test-bed for performing all sorts of source code transformations and optimizations. Additionally, its functionality is a superset of the famous UNIX programs lex and yacc, so it can also be used for any of their existing applications.

The emphasis in design has been put on shortness and clarity of implementation, well founded object oriented design and ease of use, the asymptotic performance behavior is similar to that of compatible production systems.

Because intermediate steps between custom transformations exchange data using XML (following a set of predefined XSD schemas), there is no steep learning curve for development. Furthermore, researchers can use XML, XSD and XPath libraries of their choice and still be able to collaborate with the system. The prototype has been developed using the Microsoft .NET framework and its XML, XSD and XPath library extensions.

In a sense, the functionality and the purpose of this framework are similar to other research efforts like SUIF and OpenC++ , but we hope that we have added a lot of benefits in terms of open design, portability and ease of use. If pushed to the extreme, our framework can serve as a basis for a full-blown restructuring, optimizing compiler of a modern programming language.

Support

The Bernoulli Compiler Construction Kit has been designed and developed by Kamen Yotov. Direct your questions, suggestions and concerns to kamen@yotov.org.