[www from brood-4 tom@zwizwa.be**20080501141316] adddir ./www addfile ./www/index.html hunk ./www/index.html 1 + +
++ BROOD is an experimental playing ground for exploring the space + between the Scheme programming language, functional concatenative + (stack) languages, special purpose description languages for control + and signal processing applications, and low level Forth. BROOD is an + attempt to create a programmable compiler for deeply embedded + applications, aimed at engineers on a budget. + +
+ To understand the development approach and the current form of the + source code, it might be necessary to see it in the right context. I + am an electrical engineer working mostly on small embedded control + and signal processing projects. I seek to optimize the development + process of highly specialized software for embedded systems by small + groups of say 1 to 3 people. I got fed up with ad-hoc methods of + metaprogramming and code generation that I see used in this + engineering subculture, and decided to build a clean system that can + be understood and used by a single electrical engineer with an open + mind towards modern programming language technology. However, I am + not a PLT theorist, and if you want to use BROOD, you don't need to + be either. + +
+ The current emphasis is on work towards Purrr, a stand-alone + standard Forth layer for all microcontroller architectures, and + Purrr18 an interactive tethered Forth dialect designed for the 8-bit + Microchip PIC18 Microcontroller. Future goals include the design of + a linear concatenative language as a successor or drop-in + replacement for the Packet + Forth interpreter, and the design of a declarative Scheme + derived data-flow language to implement DSP functionality on a + microcontroller or DSP processor. Eventually I'm trying to cover the + whole spectrum of tiny 8-bit microcontrollers to 32-bit machines + that can run unix with an integrated language tree based on Forth + and Scheme dialects. + + +
+ The Purrr18 core language seems to be mostly stable. It has been + used in several projects, including the Sheep sound synthesizer + software and the system software for the CATkit and KRIkit open + hardware projects developed in collaboration + with GOTO10. The Purrr18 language + has been tested on a public of technically oriented artists in the + form of several Sheep/CATkit workshops. + +
+ The BROOD core is still in a flux. It has some scars from attempted + paths that turned out to be dead ends, and lack of insight in the + general problem of playing with evaluation time, and how to organize + the code bulk. However, the path to simplification and + generalization seems quite clear. Currently I'm working on + SCAT, version 5 of + BROOD. + +
As hands-on workshops have indicated, the CATkit board is a + valuable candidate as a platform for + an online community around + the Forth language. There appears to be a population of BASIC + programmers looking for something different. A lot of work still has + to be done though, including a second board iteration and a more + standard Forth language layer on top of Purrr18 that presents a + simplified interface. The layer would also decouple the CATkit + hardware and BROOD software from the community project. + +
If you want to use BROOD/Purrr18 for a project, I suggest you + temporarily fork the code as a shield from current core + changes. This will probably remain the best approach for a while, + since I'm still looking for a good way to separate the core from + project specific specializations. If you have a problem with GPL, + you're probably also in a position to contact me for a combined + support and licencing deal. + + + +
The documentation is mostly the source, but there are some ad-hoc + text files in the doc folder. Some preliminary + papers are available for BROOD, + Purrr18 and + the Sheep sound synthesizer. + +