Conversation

I used the same approach (Forth as a message protocol) in a C target without malloc where it is easy to implement as code (i.e. replace data with fold). It's also easy to generate, and if you have a HLL like Erlang, it's also easy to pattern match.