Path: 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 > 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