Subject: Re: Lisp is not an interpreted language
From: Erik Naggum <>
Date: 1996/11/19
Message-ID: <>

* Casper H. S. Dik
| So the lisp runtime system requires a interpreter/compiler.  That is not
| the case for languages in which it is not possible to create and/or
| manipulate executable objects.

first, you need to distinguish between the "runtime system" and
"libraries".  the _runtime_ system does not require an interpreter or
compiler.  the runtime system would include error handlers, the garbage
collector, the function that was called by and returns control to the
operating system and is responsible for setting up and tearing down all
sorts of things, etc.

second, if the program has a command language, it has an interpreter for
another language embedded, and implements a micro-EVAL all of its own.

third, if the program reads data files that have any non-trivial format, it
implements the equivalent of READ, including lots of special-purpose code
to it and lex/yacc tables.

just because the functions are _not_ called READ, EVAL or COMPILE, doesn't
mean they aren't there.  a language doesn't have to have executable objects
to run code not its own.  any data-driven or table-driven implementation
can be regarded as an interpreter.  etc.  just because you can see it by
name in one language, and not in another, doesn't mean they differ in these
important regards.

it's been said that any sufficiently large programming system contains a
Common Lisp struggling to get out.

Please address private replies to "erik".  Mail to "nobody" is discarded.