[website tom@zwizwa.be**20080724104649] move ./doc/purrr.tex ./doc/forth.tex hunk ./doc/Makefile 3 -doc: staapl.html purrr.pdf synth.pdf +doc: staapl.html forth.pdf synth.pdf hunk ./doc/Makefile 29 -PUBLISH_DOCS = staapl.html purrr.pdf synth.pdf +PUBLISH_DOCS = staapl.html forth.pdf synth.pdf hunk ./doc/staapl-blog.txt 1049 -To read up on the new organization, try: + +Entry: Staapl 0.5 release notes +Date: Thu Jul 24 11:35:47 CEST 2008 + +This is the first packaged version of Staapl, a collection of +abstractions for (meta)programming microcontrollers from within PLT +Scheme. The core of the system is a dynamically typed, 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 Microchip's PIC18 +microcontroller architecture, and interaction tools for shortening the +edit-compile-test cycle. + +This is the completion of the phase I goal: to build a practical, +well-factored, easily extensible base system upon which to build phase +II: experiments with domain specific languages for DSP and embedded +control. + +From this point I will continue fixing bugs and polishing +documententation. An overview can be found here: + hunk ./doc/staapl-blog.txt 1074 -These old papers (from version 4) are still around, and need to be -adapted to the new way of working, but most of it is intact: +These old Forth papers (from version 0.4) are still around, and need +to be adapted to the new interactive workflow, but most of it is +intact: hunk ./doc/staapl-blog.txt 1078 -http://zwizwa.be/staapl/-/purrr.pdf +http://zwizwa.be/staapl/-/forth.pdf hunk ./doc/staapl-blog.txt 1081 + hunk ./doc/staapl-ramblings.txt 33769 + +Entry: packaging +Date: Thu Jul 24 10:01:05 CEST 2008 + +http://docs.plt-scheme.org/mzc/plt.html + +Entry: old web site +Date: Thu Jul 24 12:04:55 CEST 2008 + +

+ 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 embedded control and + signal processing projects. I seek to optimize the development + process of highly specialized software for embedded systems by small + groups of 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 on a + solid base that can be understood and used by a single electrical + engineer with an open mind towards modern programming language + technology. I am not a programming language theorist, and if you + want to use Staapl, you don't need to be either. + +

+ The current emphasis is on work towards Purrr, a stand-alone + standard Forth layer for generic microcontroller architectures, and + Purrr18 an interactive tethered cross-compiled 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 want 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, and an interaction system that can handle live + software updates and debugging for distributed embedded + applications. + + hunk ./prj/namespace.ss 39 + forth-debug ;; string -> print compiled code + hunk ./prj/namespace.ss 139 + + +(define (forth-debug str) + (prj-eval + `(begin + (asm-off!) + (forth-compile ,str) + (asm-on!)))) + hunk ./www/catkit/index.html 2 -CATkit, a PCB designed for Sheep and the Purrr18 language. +CATkit, a PCB designed for Sheep. hunk ./www/catkit/index.html 4 +Schematics + PCB layout are available upon request. hunk ./www/index.html 12 - Staapl is a highly integrated embedded application development tool - aimed at electronics engineers on a budget. It explores the space - between the - PLT Scheme programming - language, functional - - concatenative (stack) languages, special purpose description - languages for control and signal processing applications, and low - level - Forth. Staapl is an attempt to create a programmable - interactive compiler for networked deeply embedded applications. For - a more elaborate introduction about Staapl - see here. - The Forth dialect is is documented in two (DRAFT) papers: one - specifically about Purrr and the other about - the test suite with an attitude, the Sheep - sound synthesizer. + 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. hunk ./www/index.html 24 -

- 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 embedded control and - signal processing projects. I seek to optimize the development - process of highly specialized software for embedded systems by small - groups of 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 on a - solid base that can be understood and used by a single electrical - engineer with an open mind towards modern programming language - technology. I am not a programming language theorist, and if you - want to use Staapl, you don't need to be either. + +

Status

hunk ./www/index.html 28 - The current emphasis is on work towards Purrr, a stand-alone - standard Forth layer for generic microcontroller architectures, and - Purrr18 an interactive tethered cross-compiled 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 want 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, and an interaction system that can handle live - software updates and debugging for distributed embedded - applications. + 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. hunk ./www/index.html 34 -

Status

+

Use

hunk ./www/index.html 36 -

- I am finalizing the Staapl system core, which consists of the - following parts. -

+

If you want to use Staapl for a project, please subscribe to + the mailing + list. + +

I am currently looking for projects that apply Staapl to practical + problems in the embedded DSP/control field. I am willing to add + backends for architectures other than Microchip's PIC18 + architecture. 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. + + +

Documentation

+ +

For an introduction to Staapl + see here. + 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 you have a look at the source code. For an + introduction to PLT Scheme, have a look at the + exellent documentation. I'm + maintaining a + moderated blog. Send + comments to the mailing list or to me directly. + +

Download

+ +PLT package files can be found here. However, it might +be more convenient to track +the darcs archive. The +Staapl source code, including that of its subprojects, is released to +the public under the terms of the GPL v2. Staapl is written by Tom +Schouten. hunk ./www/index.html 76 - The Purrr18 Forth language has been used in: - + The PIC18 Forth language has been used in: hunk ./www/index.html 78 -
  • The Sheep sound synthesizer software which has been the main - test suite for the Purrr18 Forth language since the start of +
  • The Sheep sound synthesizer software + which has been the main Staapl test suite since the start of hunk ./www/index.html 89 - The CATkit - and KRIkit boards + The CATkit + and KRIkit boards hunk ./www/index.html 96 -

    Use

    - -

    If you want to use Staapl/Purrr18 for a project, I suggest you - contact me so I can give some - assistance, growing the documentation according to specific needs. - -

    If you have a problem with GPL, you're probably also in a position - to negotiate a service/licencing deal. I am currently looking for - clients and projects that apply Staapl to practical problems. - - -

    Documentation

    - -

    The documentation is mostly the source, but there's a - small - introduction - and blog. - -

    Download

    - -The main distribution channel is -the darcs -archive. Development can be followed from -the dev log. The -Staapl source code, including that of its subprojects, is released to -the public under the terms of the GPL v2. Staapl is written by Tom Schouten. - hunk ./www/sheep/index.html 1 +
     
    +The Sheep, an idiosyncratic 1-bit sound synthesizer implemented in the
    +Staapl's PIC18 Forth dialect. For more information have a look at
    +the paper.
    +