Joe Marshall <email@example.com> wrote:
| firstname.lastname@example.org (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:
In any case, all of this is *VERY* old stuff (circa 1968), and doesn't
need to be debated here...
Rob Warnock, PP-ASEL-IA <email@example.com>
627 26th Avenue <URL:http://www.rpw3.org/>
San Mateo, CA 94403 (650)572-2607