I'm idly wondering what a small dsl/scripting language would look like if it was primarily/only focused on:
* State machines
* Message Queues
* Byte manipulation/ser+deser
Basically, I want a scripting language that is the Raspberry Pi's PIO assembly language.
Conversation
Replying to
Yeah, at some point I'm going to realize I'm just re-inventing a lisp or forth or erlang or something.
I'm trying to figure out a useful little scripting lang for embedded applications, that is relatively compact/simple. (at least smaller than a wasm or circuitpython or lua)
3
2
This is a holy grail to me as well.
Gut feeling is that the generality needed for an Erlang-like scripting lang is too great to fit it into that kind of code/data space.
Forth as a scripting lang with some decent primitives goes a long way, but good luck selling that :-)
1
I've made several attempts at a "safe Forth". Not satisfied, but not done trying either.
Stack machines and refcount GC mix well.
But cleaning up the original Forth idea to remove all unsafe constructs is not an easy task.
2
1
1
1
In good Forth DIY tradition, probably not :-)
TBH I'm a bit lost about what to do with this, but Forth as a protocol works for me, Forth as an instruction set also (e.g. tiny control CPU in FPGA).
As a stand-alone language without meta system, Forth is stuck in the past.
1
FlashForth is a traditional Forth. Self hosted, 16-bit words.
Staapl is thin Forth-like wrapper around PIC18 assembly code with pattern matching peephole optimizer. It's an 8-bit compiled Forth, not self-hosted. Relies heavily on Racket module system (some old version).
Similar to traditional Forth, but the compile time language is a purely functional concatenative language piggy-backed on Scheme.
The peephole optimizer is the "evaluator" for the macro language: the "code stack" is the macro language's "data stack". Works surprisingly well.
1
I was not precise enough. How much space you win in comparison with FF?
1
I don't know enough about FF to answer that. Gut feeling says its probably similar, with FF overhead larger due to on board interpreter.
1



