Language/Implementation comments
Justin Sampson
hoperift@armory.com
Thu, 04 Apr 1996 18:46:39 -0800
Any representation of a computation--be it in Pascal, Haskell, or even
binary executable code--is an abstraction of the actions to be performed.
There is no definite ordering among representations, no absolute notion
of "high-level" versus "low-level." Code written in 80386 assembly can be
translated to run on a LISP machine, just as code written in Oberon may
be translated to run on a MISC system.
Therefore I suggest abandoning the terms "HLL" and "LLL" in Tunes, and
replacing them with "Language" (or "Specification") and "Implementation,"
respectively. The Tunes Language should be general enough to allow any
abstract representation to be given. The Tunes Computing System will be
defined in terms of the semantics of the Language; creating some portable
"low-level language" with restricted semantics would defeat the entire
purpose of the project. A compact, normalized, partially-evaluated format
for the Language may be devised, but the semantics of that version must
be identical to the semantics of the Language. Any Implementation will
have its own local language, of course, and specifications using that
language may be easily integrated into a larger program in the Tunes
Language.
Note that choosing Forth as an intermediate language for all Tunes
implementations severely restricts portability to currently popular
machines. The project will surely be embarrassed when a Prolog processor
is released!
- Justin Sampson - hoperift@armory.com -