Let's Make Robots!

Forth

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

 

I still write LISP programs for Autocad, except we usually call it "Lost in Stupid Parenthasis"

  1. There are two places where things you type in can go: the dictionary or the stack.

  2. There are two modes: execute - constants you type are put onto the stack and defined words are just edited; and definition - the address of a word is put into the dictionary and constants are put into the dictionary prefaced by a word that pushes them onto the dictionary.

  3. Each word is either a primitive which is just run as a subroutine, or a defined word which is made up of other words.

  4. Each word is either a normal word that obeys #2, or an execute-immediate word which is executed in definition mode.

For an ARM forth you'd probably have to turn off the auto optimization which allow the core to change the order in which operations can be done.

I remember epoch argumements on comp.lang.forth about how few words really needed to be primitives and which ones. The number I remember is 11, but they might have brought it lower by the time I got married and had better things to do. Besides which, if you went for the minimum word one, it would be horribly optimized. The Forth I wrote was in 68000 assembly code and I just followed the definition from Forth Inc. I wrote almost everything as a primitive.

I also was interested in LISP (Lots of Irratating Silly Parenthasis) at the time so I wrote a list extension for forth.

The first Macintosh application I wrote was in an object oriented version of forth called Mach, I think. I just remember churning the app out in a long night to be able to claim I'd written a Mac application. It was buggy as heck, but as long as I did the demo it looked wonderful. Or as I've been able to say a few times in my career, "A sufficiently advanced technology is indistinguishable from a rigged demo." :)

Forth is silly and wonderful, but I haven't programmed in it in almost 30 years.

I didn't get that feeling again, that the world was wonderful and new, until I discovered robotics and microcontrollers.

is quite fond of forth.

Sorry, duplicate.

Forth has been around a bit. Many of the old arcade games were programmed in Forth. A lot of the old Dr. Dobbs articles were about Forth.

The first compiler/interpreter I ever wrote was a Forth for the 68000.

I thought it was older than that for some reason. Like Dennis Ritchie in kindergarten old. No?

Forth was invented around 1970, about the same time as C.  Forth, Inc was created to produce Forth systems and sell tools and services around 1973.  As for the ten years, I was referring to AMForth for the AVR.  It may be a bit more than 10 years, but not much.

I've heard of forth on numerous occasions, seen a few guys swearing by it on the propeller, never looked at it properly though. Should have looked sooner really, definitely agree that its interesting. Just goes to show how different things can be sometimes.

 

Did have a look to see if its been done on arduino yet, turns out it has but my search brought me onto bitlash instead: https://github.com/billroy/bitlash/wiki/install

There is a very good Forth for AVRs, with a build meant for Arduinos

http://amforth.sourceforge.net/

It's been around for a long time, about ten years, and is very complete and mature.