Wed Jun 25 18:32:16 CEST 2008

Swapping the two stacks : using just rewrite primitives?

In fact, since the 'assembly stack' is of such paramount importance
for giving a semantics to the macro language:

 Q: why not use it as the primary stack, and define Forth primitives
    that manipulate program entry points (conditional jumps) as an
    extension to that? (sticking with pure rewrite rules at first?)

 Q: if so, can a concatenative eager rewriting macro language like
    Purrr be equated with a purely functional typed concatenative
    stack language without full reduction?

To answer the first rule: if code quotations are allowed without
higher order functions then my gut feeling is that this should work
pretty well. This brings the metalanguage VERY close to Scat: simply
extending Scat with assembly code data types already does the trick.

It looks like this is the way to find a better link between target
semantics and macro semantics.