We're pleased to announce the beginnings of 42, a new compiler for occam, and ultimately, CSP-based languages targeting a wide variety of hardwares and platforms.
This work will be guided by a number of principles, and will ultimately have its own space here on the transterpreter.org website. Our ultimate goal is to support novel and heterogeneous compilation targets---things like the Cell and modern FPGAs that have a mix of traditional cores (PPC) and reconfigurable logic. Our initial goal is to provide an occam2.1 compiler that supports arbitrarily sized targets (8-bit through 2n-bit) machines, both big- and little-endian. Our runtime target will initially be the Transterpeter.
The principles that will guide this work are simple. It is a learning exercise for those of us involved in the project; furthermore, it will provide an opportunity for students who follow after us to explore compilers and perhaps extend it themselves. Hence, simplicity of expression will be of primary concern for all code that we write. Second, the compiler must be reliable; it will not crash, and it will not generate bad code. Third, the project will be well-documented, both from an end-user's perspective and a developer's perspective. A project is no better than its documentation---something we're learning about the Transterpreter. Also, it is unlikely to be useful as a learning resource if it becomes a dead and undocumented pile of code. The compiler will be thoroughly tested, both from one pass to the next as well as front-to-back. Good tests contribute to reliability, and serve as a kind of documentation themselves. We are hoping that the compiler will be maintainable and extensible, but this is always a challenge---we think it is possible, however.
And lastly, this will be an open and team-driven endeavor. As the language evolves from our starting point (or, as we look at the next language project we want to work on based on what we learn from this one), that process must be open and well-documented. The Transterpreter team currently communicates well, and must continue to do so if we're to make a success of our efforts.
If you're interested in contributing to our ongoing efforts, feel free to drop me a note (matt at transterpreter plbbt org). It should be fun.