Newsgroups: comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!rochester!cornellcs!newsstand.cit.cornell.edu!news.graphics.cornell.edu!hookup!gatech!news.mathworks.com!blanket.mitre.org!world!wware
From: wware@world.std.com (Will Ware)
Subject: Re: Free Lisp-Interpreter
Message-ID: <E6MKG0.3t6@world.std.com>
Organization: The World Public Access UNIX, Brookline, MA
X-Newsreader: TIN [version 1.2 PL2]
References: <5en669$46i@picard.toppoint.de> <1997Feb24.084122.15193@wavehh.hanse.de> <5flti1$tvo@omega.gmd.de>
Distribution: inet
Date: Thu, 6 Mar 1997 14:04:48 GMT
Lines: 27

Joerg Hoehle (hoehle@zeus.gmd.de) wrote:
: Martin Cracauer (cracauer@wavehh.hanse.de) wrote:
: : [in] the Common Lisp dialect...
: : ...All the systems listed in the FAQ are either compilers or
: : bytecode machine.
: That doesn't mean that these systems don't include interpreters.  When
: I held a Lisp course in 1993, the students used CLISP on DOS boxes...

I think the confusion might be between "interpreted" and "interactive".
If I understand correctly, systems like CLISP, GCL, and CMUCL will compile
functions as you type them in, often to some sort of byte code. This is a
one-pass incremental compilation, like what's done in Forth, I believe. To
the user, this compilation process is invisible, and is indistinguishable
from using an interpreter except that things run more quickly. Have I got
that right?

A "real" interpreter would store your functions in essentially the form you
typed them (it might lex them to tokens; the Commodore 64 Basic interpreter
did this), and interpret them from scratch each time it ran them.

There's the more obvious form of compiling (compile-file) which offers
further speed-ups, and is more remniscent of batch-compiled languages like
C or Pascal. I think this is typically a two-pass process.
-- 
-------------------------------------------------------------
Will Ware <wware@world.std.com> web <http://world.std.com/~wware/>
PGP fingerprint   45A8 722C D149 10CC   F0CF 48FB 93BF 7289
