🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.robotics
Article #1273

Re: "Easy" way to put "AI" in realtime embedded systems?

#1273
From: Rick Smith
Date: Wed, 17 Apr 1991 19:31
75 lines
3577 bytes
> monty@sagpd1.UUCP (Monty Saine) writes:
>>
>>    I may be totally wrong in this but aren't FORTH and LISP close relatives?
>>It seems to me that FORTH was the foundation of LISP. ...
>>Is there anyone out there that can set me straight or re-enforce this??

John McCarthy developed LISP around 1956-57 and presented it as a
notation for fiddling with recursive functions on a computer.

Chuck Moore developed FORTH about 10 years later. I forget just why
did it, but Kitt's Peak Observatory was an early and ardent user.

>>
>>Thanks,
>>
>>Monty Saine

And yoshi@nocusuhs.nnmc.navy.mil (Dojun Yoshikami) writes:

>... FORTH allows one to bind
>at any time (using the words : CREATE and DOES>) either early or late (which
>is why it's so d*mn fast!) whereas LISP (for the most part) tends to be late
>binding and does not allow one to control binding as easily. 

Not true. Modern LISPs support early, late, and up-to-the-last-possible-
moment binding. It depends on how you use your compiler. FORTH generally
binds early, since it will compile-in a pointer to the latest dictionary
entry, and that pointer won't ever be changed to point to a more recent
one. But it _can_ be made to bind late. One reason I love both languages
is that they both have embedded interpreters available at runtime.
Now *that's* what I call late binding!

>FORTH is easily
>extensible, for instance, FORTH doesn't have a GOTO but if you want it, you
>can program it in.  

LISP is also easily extensible. It already has GOTO, and you can implement
numerous bizarre flow control variations with modern LISPs.

>...  Forth allows you to extend your language to create your own
>defining words. 

Same with LISP. Every LISP typically comes with a bunch of optionally
loaded libraries of functions you'll get if you need them, all written
in LISP.

> In Forth you can De-compile definitions to see what they are,

Same with most LISPs: implementable, commonly found, but not always
included.

>run non-preemptive multitasking, 

I do it all the time in LISP. Did a great realtime autoloader mechanism
simulation on a Macintosh in LISP. I *did* have to implement my own
scheduler and such and maybe it wasn't as transparent as I'd wish.

>If you're wondering why I'm so interested in Forth, currently I'm in the
>process of making a few small microprocessor controlled robotics projects,

FORTH fits the most hack value in the smallest space of any programming
language ever developed. No question. If you're severely limited in your
development environment (sentenced to 8 bit mircos, for example) then
it's a wonderful choice.

If you have to deal with big bucks, serious requirement specification,
source code control, change tracking, ad nauseum, then I don't know
how well FORTH would work. It really is designed for a *micro* system
environment (not large, not medium, not mini, not small, but *micro*).

My own rule of thumb:
If you can't do it in a weekend, maybe you shouldn't do it in FORTH.

Rick.
smith@sctc.com    Arden Hills, Minnesota
Technical Details
Message-ID: <1991Apr17.193144.15194@sctc.com>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!elroy.jpl.nasa.gov!swrinde!mips!spool.mu.edu!cs.umn.edu!sctc.com!smith
References: <1991Apr16.155126.5186@sagpd1> <1991Apr17.143949.25843@nocusuhs.nnmc.navy.mil>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!elroy.jpl.nasa.gov!swrinde!mips!spool.mu.edu!cs.umn.edu!sctc.com!smith
From: smith@sctc.com (Rick Smith)
Newsgroups: comp.robotics
Subject: Re: "Easy" way to put "AI" in realtime embedded systems?
Message-ID: <1991Apr17.193144.15194@sctc.com>
Date: 17 Apr 91 19:31:44 GMT
References: <1991Apr16.155126.5186@sagpd1> <1991Apr17.143949.25843@nocusuhs.nnmc.navy.mil>
Distribution: usa
Organization: SCTC
Lines: 75