Subject: Re: Difference between LISP and C++
From: rpw3@rpw3.org (Rob Warnock)
Date: Fri, 18 Oct 2002 03:04:56 -0500
Newsgroups: comp.lang.lisp
Message-ID: <e-ycnaDYUvs1XTKgXTWcpQ@News.GigaNews.Com>
Joe Marshall  <jrm@ccs.neu.edu> wrote:
+---------------
| gat@jpl.nasa.gov (Erann Gat) writes:
| > On your definition whether something is a compiler or an interpreter
| > depends on what you decide to call your "target machine", but that is
| > itself an arbitrary choice, so the boundary between interpretation and
| > compilation is likewise an arbitrary choice.
| 
| Not at all.  I'm claiming that interpretation and compilation are a
| relationship between two languages (you choose the languages, I don't
| care).  You have the option of 
| a) compiling a program from the source language into the target language, 
| b) writing an interpreter for the source language in the target language, or
| c) introducing an intermediate language and creating an interpreted or
|    compiled relationship between it and the source and target languages.
| 
| Yes, your choice of source and target language is arbitrary, but the
| notion of interpretation or compilation isn't.
+---------------

Exactly so. Those definitions and relationships are *decades* old!!
If one is not familiar with them then one's computer science education
(whether formal or self-taught) is sadly lacking.

Possibly the best presentation I have seen of them is the transformational
"T-diagrams" in the book "A Compiler Generator" (for the XPL language)
by McKeeman, Horning, and Wortman <URL:http://www.cs.toronto.edu/XPL/>.
Inside the front & back covers of that book are a series of T-diagrams
which graphically & clearly show the relationships between four kinds of
things -- Machines, Interpreters, Translators/Compilers, and Programs --
and how each is used at various stages of, say, bootstrapping a language
system to a new environment.

The XPL book itself goes into much further detail on T-diagrams and their
uses, but if you're not familiar at all with the concepts, the following
pages (especially the first one) will give one some taste of them:

    <URL:http://www.cs.bath.ac.uk/~occ/comp0029/t_diagrams.shtml>
    <URL:http://www-vs.informatik.uni-ulm.de/Papers/MPWOberon/
	 Implementation%20Strategy.html>
    <URL:http://www.cs.ru.ac.za/CSc301/Translators/tut08s.htm>
    <URL:http://www.math.grin.edu/~rebelsky/Courses/CS362/2002F/
	 Reference/TerryBook/chap03.pdf>

In any case, all of this is *VERY* old stuff (circa 1968), and doesn't
need to be debated here...


-Rob

-----
Rob Warnock, PP-ASEL-IA		<rpw3@rpw3.org>
627 26th Avenue			<URL:http://www.rpw3.org/>
San Mateo, CA 94403		(650)572-2607