Do you have an application in mind?
Garth has his Forth on his bench top computer (I think). I don't know how he loads the runtime (or if it's in ROM on the board), but he basically does what you said -- simply send the Forth source over the serial line to run it.
Yes; you can read about it on my workbench computer page,
http://wilsonminesco.com/BenchCPU/ . Go down to the heading, "How it is controlled."
Apparently the combination of the serial speed and his Forth program sizes don't make the process slow enough for him to bother with anything else.
Right. Instant compilation like Samuel Falvo (forum name kc5tja) talks about would b nice, but it's not that big a deal. Run speed is more important than load speed. If I'm just sending a few lines over, it's basically instant. If it's lots of pages, I'll have a little thumb-twiddling to do. I started the topic here "
dictionary hashing before I realized that what's taking most of the compiling time on my system is not the searching itself but rather a lot of other stuff I should re-write as primitives, and should also do the RS-232 interrupt service in assembly. I give a little more detail in
this post.
pjeaton, it's nice to see you back. What you're talking about regarding developing in RAM and then transferring to ROM is what I did for the
automated test equipment at work around 1990 on the 65c02-powered Cubit 7540 STD-bus SBC. I guess I ought to post an article about the method on my website. I used a metacompiler to get the initial kernel going so there would be a Forth system in EPROM, then developed new code in RAM, on the target itself. After accumulating some amount of new working code, I'd run it through the metacompiler and put it in the EPROM with the earlier code, and get back to developing more in RAM. One change I had to make of course is the way variables' data is kept. There is a THERE that's separate from HERE, and THERE keeps the next available address for variables' data space which is separate from the variables' headers which go into ROM.