Edited Staapl blog.

This is the Staapl blog.  It contains articles on topics related to
the Staapl metaprogramming system.  The articles are continuously
updated, with the intention to grow them into chapters of the Staapl
manual.  This blog does not allow on-line comments, but you are
invited to send reactions to me privately or the mailing list


The disorganized development log for Staapl can be found here:


Staapl is also known under the working name Brood, which is
unfortunately impossible to google..  For more information on the
Staapl project see


20170519 Serial adapter
20170510 A way out: bring it closer to LLVM
Peephole two-pass: arbitrary?
20170415 Complexity
Protocol-oriented programming
20170414 Rehash: the problems, and the future directions
20160212 Protocol oriented programming
20160124 J1 forth
20151011 Goals, revisited
20150719 Why is Forth an Arrow?
20150718 Protocol Oriented Programming
20150110 Multitasking and Forth
Just return stacks
Simplified Erlang
dtc, how does it work?
20141226 The split
20140728 empty
20140726 The 16-bit Threaded Code is working
20140724 Debugging
BeagleBone Black BRU
20140720 Simulator supports uninitialized values
20140718 rackseq
20140708 Small code bases and global variables
20140707 .fm vs .f
20140705 Forth vs. C
20140704 New Staapl platform + USB driver.
20140106 Interaction or debuggability?
20130902 Deep embedded and abstraction
20130831 Solving Debugging
Forth and Lisp and quirky abstractions
20120606 Protocol oriented programming
20120603 Smaller PIC chips
20120520 USB
20120517 Getting started
20111109 Staapl niche?
Finite-state Machines (shallow coroutines) and extensible compiler state.
20111107 Released staapl-0.5.11 (PLaneT 1.11)
20111016 Monad vs. Applicative / Arrow
20110401 All over the place
PICkit 2
20110329 Forth Syntax
Right or Fast?
20110311 Staapl's target is flat
20110308 Embedded development is #ifdef-land
20110122 Abstract Interpretation (staapl/absint)
20101230 S-expression based syntax
20101116 What is a Staapl macro? I :: m -> (t -> t)
20101114 Staapl and RISC machines
Lambda the Ultimate
20101003 Released staapl-0.5.10 (PLaneT 1.10)
20100314 Verifying the ad-hoc PIC18 code generator
20100307 Getting started with Staapl
20091008 Lexical Scope is Difficult
20090920 From Stack to Point-Free
20090911 Two Attacks
20090910 Getting rid of CONS
20090903 Implementability
20090902 Why 2 stacks?
20090826 Lazy partial evaluation
20090812 A Forth console on PIC 18F1320
20090723 Backlinks
20090721 An approach to bootstrapping static semantics
20090716 Escaping concrete machine semantics through simulators
20090715 Connecting with current engineering practices
20090630 Released staapl-0.5.9
20090611 MetaOcaml
20090608 A balance between lowlevel and highlevel Scheme macros
20090602 Why Forth works
Why use (Scheme) macros?
Writing device drivers
20090528 Compile mode accessible at console
20090525 Live interaction
20090518 Onward
Released staapl-0.5.8
20090426 Forth is already CPS / ANF / SSA
20090420 Eliminating Reflection
20090408 Restating Goals
20090330 Stacks and Lambda
20090314 Stack machines with large register files
Small computers
20090307 A new introduction.
20080927 A MetaOcaml offshoring example
20080926 A type system for Coma
20080916 Staapl's metaprogramming approach
20080913 Staapl vs. MetaML / MetaScheme
20080912 Incremental development
20080909 Blink-A-Led
20080908 Staapl PLaneT package snapshots
20080905 Staapl command line compiler
20080827 PICkit2 v2.x support
20080822 Staapl design choices
20080819 Two kinds of parameterized code
20080818 Improving Forth
20080813 Programmer bootstrap, Staapler and PicKit2
The role of names in concatenative languages
Coma and names: reflection vs. staging
20080810 Forth's 2 modes: interpret and compile
20080809 Interaction: single chip vs. distributed applications
20080807 Is classic code analysis necessary?
Staapl in a nutshell
20080806 Coma semantics
20080727 A simple example
20080724 Staapl 0.5 release notes
20080723 Sheep works!
20080706 Projected Semantics
20080702 Staapl goals
20080625 History and Semantics of Coma
20080605 Name spaces: load vs. require
20080527 Forth and Metaprogramming
20080526 Scheme, Coma and Stack Machine Code
What is Partial Evaluation?
Extract Method
Unrolling Forth
20080523 The use of macros in Scheme
20080521 Compiler specialization: bottom up with holes?
The new Staapl (Brood-5)