Starting Forth - After yesterday's Prolog post, another awesome language
home.iae.nl
home.iae.nl
On another note, it is REALLY easy to write completely incomprehensible spaghetti code in Forth. You really have to be disciplined or you'll end up with a lot of "write-once" code.
Anyway, I hope you enjoy Forth as much as I did.
EDIT: Brain fart, wrote stackless when I meant to write stack based, sorry.
'Starting Forth' is indeed a treasure, I think I'll dig out my old copy and add it to the stack, heh.
ISTR it was a FIG-Forth implementation, but I haven't used it in over 20 years (wow, that feels old) so I might be wrong.
I remember using Apple Forth (from Cap'n Software) in 1982 in Independent Study in high school. I made a cloud chamber simulator with it for the Physics department. (Side note: my public high school had an awesome science department: a radiation class complete with scintillation counters, a cobalt source in a lead pig, etc. PDP-11 and Apple IIs, small radio telescope on the roof. Riverview High School, Sarasota, FL; no idea what it's like these days.)
You should be able to load this into VICE (http://www.viceteam.org/) and start hacking away. Hope this helps.
A great language, though I only tried to write a text adventure in it!
Some crazy stuff that you could do with Forth. The author shows how you can inject a forth VM in shellcode and build exploits on top of that.
The current documentation is top notch though and you can learn a lot if you look through the factor blogs (or read a forth book)
Link to factor blogs: http://planet.factorcode.org/
Link for those of us not following HN 24/7?
What blew my mind was that - apart from a tiny kernel - Forth was written in Forth. It bootstrapped itself from basic principles. It's kind of the Principia Mathematica of programming languages...
Forth makes MUCH more sense in an embedded context, IMHO.
Forth is just unbeatable in an embedded context. Minimal porting of a few basic words and you're up and running with fully functional environment you can adjust on-the-fly.