I have mused about a related question since I got my first computer eons ago. It had only a machine code monitor (yes, a though start to learning what a computer was). It does seem some kind of Forth might have been the good first step on the path to high-level languages (like https://github.com/uho/preForth) but it's sure not the only way.
Inspired by a previous hackernews comment-thread, I don't use a return-stack. So while I do have support for `if` it is implemented in a hardwired fashion.
I'd love to spend the time to do it properly, but I suspect rabbit-hole wouldn't even begin to describe the amount of time I'd sink into it.
I did sink into it for a bit, playing with a matrix of 9 different schemes. However instead of Forth I’d implement Leroy’s ZINC model and implement a simple RPN version of the lambda calculus.