I've been thinking about how to make programming for the 2600 even more accessible and the idea struck me that many high level languages for early microprocessors like the 6502 used threaded code interpreters to squeeze larger programs into those memory constrained systems. Examples include Forth, several variants of Pascal P-systems and some BASIC variants as well. The P-systems even had other languages target the P-code in much the same way languages target the JVM or the CLR today.
This came at a cost of course. These techniques were essentially early forms of virtual machines that traded performance for instruction density. But all examples I've read about seemed to have higher memory requirements than the 2600's meager 128 bytes of RAM. Forth programmers used to boast that a minimal Forth system could be implemented in under 2Kb of RAM.
It occurred to me that if a bare bones threaded code interpreter is feasible it may have too much memory overhead to justify it's use. And even if the memory overhead is small it may be too slow to be useful for game development. Still, the idea is intriguing.
Anyone have experience with these systems? How useful were they? My first computer was a Tandy 1000 HX with the memory expansion and I didn't start programing until the Pentium era so I have no point of reference.