Newsgroups: alt.lang.design,comp.lang.c++,comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!fs7.ece.cmu.edu!kinky.eng.gtefsd.com!europa.eng.gtefsd.com!howland.reston.ans.net!pipex!bt!btnet!uknet!festival!edcogsci!jeff
From: jeff@aiai.ed.ac.uk (Jeff Dalton)
Subject: Re: Interpreters (Re: Comparing productivity: LisP against C++ (was Re: Reference Counting))
Message-ID: <D2x5xA.91y@cogsci.ed.ac.uk>
Sender: usenet@cogsci.ed.ac.uk (C News Software)
Nntp-Posting-Host: bute.aiai.ed.ac.uk
Organization: AIAI, University of Edinburgh, Scotland
References: <RFB.95Jan20150836@cfdevx1.lehman.com> <MATT.95Jan21135219@physics7.berkeley.edu> <3fs91e$hap@panix2.panix.com>
Date: Tue, 24 Jan 1995 17:00:45 GMT
Lines: 40
Xref: glinda.oz.cs.cmu.edu comp.lang.c++:109081 comp.lang.lisp:16480

In article <3fs91e$hap@panix2.panix.com> pw@panix.com (Paul Wallich) writes:
>In <MATT.95Jan21135219@physics7.berkeley.edu> matt@physics7.berkeley.edu (Matt Austern) writes:
>
>>In article <RFB.95Jan20150836@cfdevx1.lehman.com> rfb@lehman.com (Rick Busdiecker) writes:
>
>>> I think that there is a common misconceptions that Lisp is an
>>> ``interpreted language''.  In fact, there is nothing to prevent anyone
>>> from building either a Lisp or a C++ in any of these configurations:
>>>  1. Compiler and interpreter.
>>>  2. Compiler with no interpreter
>>>  3. Interpreter with no compiler
>
>>That's not really true.  Every dialect of lisp I've ever heard of
>>includes the function eval.  Once you have eval, you have a lisp
>>interpreter; the top-level read-eval-print loop is just a frill.
>
>Maybe, maybe not. One of the problems here is definitional, however:
>it's quite easy to build an incrementally-compiled lisp with no 
>interpreter at all: read-eval-print becomes something like 
>read-compile-apply-print [...]

True.  PopLog Common Lisp is an example.

>>That's one reason why compiled lisp code is a bit unusual: the
>>run-time library has to include the full interpreter.
>
>Or something that resembles the interpreter or compiler closely
>enough for government work...

*Lisp* does not require that the run-time library include the
compiler or the interpreter.  *Common Lisp*'s run-time includes
the functions eval, compile, and compile-file.  But even then
what's in the library might not be what you expect.  For instance,
the KCL compiler emits C code and then runs the C compiler.
That doesn't make the C compiler part of KCL's run-time library.

-- jd



