[www from brood-4 tom@zwizwa.be**20080501141316] adddir ./www addfile ./www/index.html hunk ./www/index.html 1 + + +BROOD + + +

BROOD

+ + +

About

+ +

+ 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. + + +

Status

+ +

+ 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. + +

Use

+ +

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. + + + +

Documentation

+ +

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. + +

Download

+ +The main distribution channel is +the darcs +archive. Development can be followed from +the dev log. The +BROOD source code, including that of its subprojects, is released to +the public under the terms of the GPL v2. BROOD is written by Tom Schouten. + + +