Cyber Surfer <cyber_surfer@nospam.wildcard.demon.co.uk> wrote:
+---------------
| I agree. If someone asks me for an "interpreter", I might give them an
| interactive system with compiler. If someone asks me for a compiler, I
| might do exactly the same thing! On the other hand, I might give them
| an interpreter.
+---------------
To me those terms have always connated a desired style of usage, more
than a strict definition of implementation. When I hear "interpreter",
I think of something that (hopefully!) has a small memory footprint
and start-up time, even at the cost of not having the best possible
CPU performance for that language, and is thus suited to relatively
"small" interactive uses (trying things out, simple student exercises,
small-to-medium "shell scripts", prototype CGI-BIN scripts, etc).
And when I hear "compiler", I think of something that pushes the
runtime CPU performance to the *opposite* extreme, even at the
cost of high "start-up time" (compilation time) and relatively
large memory footprint (while compiling). And hopefully the compiler
includes a way of creating "standalone" programs from its output
that are more quick-starting than the compiler itself.
Even the simplest "pure interpreter" will hand the *output* of "read" to
"eval", not the input -- so there's already *some* "compiling" going on.
Some "byte-code compilers" would fall in the first performance category,
some wouldn't. Aan almost no "highly-optimizing compiler" would fall in
the first category, unless it also contained a lighter-weight interactive
REPL (which still "compiles" to some intermediate representation, just
not particularly optimized) which only calls the "real" compiler when
instructed to.
And that, to me, is the point. Lisp compilers as usually implemented
are nearly unique among language systems in allowing users to somewhat
change their point of view *during* a single session or execution.
(I say "somewhat" only because I suspect that highly-optimizing Lisp
compilers will suffer in the "start-up time" metric, even when you
don't compile anything.)
-Rob
-----
Rob Warnock, 7L-551 rpw3@sgi.com
Silicon Graphics, Inc. http://reality.sgi.com/rpw3/
2011 N. Shoreline Blvd. Phone: 415-933-1673 FAX: 415-933-0979
Mountain View, CA 94043 PP-ASEL-IA