Related articles |
---|
machine independent executables osu-eddie!manson@tut.cis.ohio-state.edu (Robert Manson) (1987-08-16) |
Re: machine independent executables bct@its63b.ed.ac.uk (bct) (1987-08-19) |
Re: machine independent executables faccs!dbt (1987-08-21) |
From: | faccs!dbt (Data base translator ) |
Newsgroups: | comp.compilers |
Summary: | Scheme as an intermediate code |
Date: | 21 Aug 87 15:56:34 GMT |
References: | <660@ima.ISC.COM> |
Organization: | Boeing Computer Services, Seattle |
In article <660@ima.ISC.COM>, johnl@ima.UUCP writes:
> There has been a discussion on comp.unix.wizards about multiple machine
> executables ...
In MIT AI Memo 379, Guy Steele made the case for Scheme (i.e. essentially
the lambda calculus) as an appropriate intermediate code.
The argument is that an intermediate code should not try to model the
imperative nature of the machines, that that is too low-level. Instead,
what Scheme offers is a 'low-level' model of control-flow (if, goto) and
environment/renaming (lambda) that is the essential common denominator and
yet completely independent of *any* particular machine.
In addition, it is relatively easy to write a portable interpreter for
Scheme (they already exist, e.g. MIT Scheme is in 'portable' C) and there
are good compilers available on a wide variety of machines ('T', from Yale
is excellent and is only $200). Compare this to the task of developing yet
another compiler and designing the intermediate code just to get a project off
the ground.
A lot of issues would still remain, but it seems to me a good starting
point. I would be interested in discussing this further or elaborating on
the advantages of Scheme.
[Scheme is as good an intermediate language as any, but the T compiler, like
most Lisp compilers, generates code to be added into a running T environment
rather than a standalone program to take away. Also, it doesn't help the
nitty-gritty issues like alignment and byte order. -John]
--
Wage Peace,
Patrick Logan (dbt@faccs) uw-beaver!ssc-vax!shuksan!tahoma!bcstec!faccs
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.