Tue Oct 20 19:00:56 CEST 2009
I'd like to capture the nature of Staapl in a single meaningful
phrase, to then try to explain it word-by word, and allow for
The `patterns' language is the specification language of a
concatenative(1) code transformation(2) language with local(3)
(1) Concatentation of `words' (syntax) denotes composition of code
transformation functions (semantics).
(2) The code being transformed is the machine language of an abstract
or concrete machine.
(3) Because the code transformations are local, they act as the
operations of a stack machine. If this locality is _also_ reflected
in the machine language objects the transformers manipulate, a 2-stage
stack language can be constructed.
The system behaves as a concatenative macro assembler that performs
reductions (computations) in addition to expansions.
Giving up locality allows the construction of more general combinator
languages, not necessarily stack-based. This sort of behaviour can be
embedded inside a stack-machine.