Staapl is a collection of abstractions for (meta)programming microcontrollers from within PLT Scheme. The core of the system is a programmable code generator structured around a functional concatenative macro language. On top of this it includes a syntax frontend for creating Forth style languages, a backend code generator for the Microchip PIC18 microcontroller architecture, and interaction tools for shortening the edit-compile-run cycle.
The phase I goal - to build a practical, well-factored, easily extensible base system - is completed and put in maintenance mode. It will serve as the basis for phase II: further experiments with domain specific languages for DSP and embedded control.
For the general idea, see the introduction. The Forth dialect is is documented in two (DRAFT) papers: one specifically about Forth and the other about the test suite with an attitude, the Sheep sound synthesizer. Since this is a developer-oriented project with a lot of effort put into clean organization, I suggest looking at the source code to pierce through the top-layer of workflow glue. For the latest news, there is a moderated blog. Send comments to the mailing list. For an introduction to PLT Scheme, have a look at the exellent documentation.
I am currently looking for projects that apply Staapl to practical problems in the embedded DSP/control field. I am particularly interested in adding backends for other architectures. Note that version 0.1 did include a backend for the PIC12 and PIC16 cores which is not difficult to port, and I've been looking into porting to dsPIC and ARM7TDMI. For more information please contact me directly or through my LinkedIn profile.
The PIC18 Forth language has been used in:
Thu Jul 24 12:57:17 CEST 2008