Article View: comp.robotics
Article #1254Re: "Easy" way to put "AI" in realtime embedded systems?
From: MILLS,JOHN M.
Date: Mon, 15 Apr 1991 13:24
Date: Mon, 15 Apr 1991 13:24
46 lines
2606 bytes
2606 bytes
In article <5478@mindlink.UUCP> Nick_Janow@mindlink.UUCP (Nick Janow) writes:
>Forth might be a good choice for adding AI to embedded systems. Forth is
>widely used in embedded systems, and is also used in robotics and AI research.
>Using Forth for all parts of the project would save time, money, system
>resources and complexity compared with using, say, C for one part and Lisp for
>the AI.
I haven't used Forth, but it has some attractive qualities for this:
(1) [SUPPOSED to be] Inherently "clean" for real-time-interrupts,
(2) Inherently extensible (but if you "extend" an existing function,
you probably lose the original definition),
(3) Inherently recursive,
(4) Assembly-language sources available for several common processors,
and
(5) Small but [fairly] visible body of experienced users.
I understand that Forth was invented for telescope control in a lab setting,
which sounds like a comparable set of problems viz. hardware driving.
(Also, Forth tends to parenthesize, making LISPers feel comfortable:
LISP :: "Lots of Irritating Single Parentheses" M. Waite, _Software for
Non-Numerical Applications_ [8->).
On the other front (built-in LISP):
XLISP for the MS-DOS PC is distributed in source form, in C. This is a
PD offering; check local BBSs. You have to decide whether to field the
MS-DOS environment, or embed the LISP, but you've got the LISP to start
with, or
Some LISP systems can (I understand) compile user programs to C. This
would require a two-stage crossing (LISP->C; C->embedded env.). (I have
heard this claim for Symbolics, I think.)
I haven't done these things, and the Forth comments were gratuitous, but
since noone had mentioned either PD XLISP or cross-compilation, I hoped
this might start some ideas.
I _did_ play with a Forth-like "Threaded Interpretive Language" for CP/M,
called "STOIC." CPMUG distribution. It would probably work, but FORTH
is more common and users at least _exist_.
--
MILLS,JOHN M.
Georgia Institute of Technology, Atlanta Georgia, 30332
uucp: ...!{decvax,hplabs,ncar,purdue,rutgers}!gatech!prism!jm59
Internet: jm59@prism.gatech.edu
Technical Details
Message-ID:
<26311@hydra.gatech.EDU>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!rutgers!gatech!prism!jm59References:
<5478@mindlink.UUCP>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!rutgers!gatech!prism!jm59 From: jm59@prism.gatech.EDU (MILLS,JOHN M.) Newsgroups: comp.robotics Subject: Re: "Easy" way to put "AI" in realtime embedded systems? Message-ID: <26311@hydra.gatech.EDU> Date: 15 Apr 91 13:24:55 GMT References: <5478@mindlink.UUCP> Organization: Georgia Institute of Technology Lines: 46