Related articles |
---|
Response on pseudo-code compilers clifton_r@verifone.com (Clifton Royston) (1990-10-19) |
Newsgroups: | comp.compilers |
From: | Clifton Royston <clifton_r@verifone.com> |
Organization: | Compilers Central |
Date: | Fri, 19 Oct 90 17:42:12 AHT |
X-Vms-Mail-Cc: | CLIFTON_R |
In comp.compilers bruce@cosc.canterbury.ac.nz writes:
>"The motivation is to find a C compiler which generates space-efficient
>code rather than speed-efficient code. The best way I know of doing this
>is to generate psueudo-code which is interpreted by a kernel at runtime.
>The target architecture is MS-DOS, though the compiler can run on
>anything. So, I want to knw if there is a C compiler which generates
>interpreted code to run under MS-DOS."
The one commercially available compiler I know of with those properties
is the Amsterdam Compiler Kit, which has been written up in various ACM
articles during the '80s. (E.g. CACM, 9/83 vol 26 #9, "A Practical Tool Kit
for Making Portable Compilers", which describes the over-all design.) The
source of the software and current maintenance for it is Vrije Universiteit
in Amsterdam, and the current U.S. distributor is UniPress, Inc.
Some cautions: This is basically a large academic system, and is not
market-ready by commercial software standards of "load the disks and go."
A lot of the work has gone into backend machine code generation rather than
making the interpreters work nice, and they don't supply an assembly-coded
interpreter for the 8086 family, nor a C-coded interpreter which is aimed
at production use rather than debugging. Our company has invested a LOT of
man-months in enhancing the Z80 and 68000 interpreters, porting software to
DOS, etc. For us, it was worth it (or so we hope.) Your friends might not
feel the same way about it.
Another factor to bear in mind is that although they support C, PASCAL,
BASIC, and MODULA-2, the implementations of the languages are not fully
"industrial strength." E.g. the C compiler is UNIX V7 compatible, not ANSI;
an ANSI compiler is promised for later this year. The BASIC compiler is at
the level of GW-BASIC (more-or-less), not a more structured modern BASIC.
*** BEAR IN MIND, THE ABOVE ARE JUST MY PERSONAL OPINIONS ON THE SUBJECT. ***
More info on the Microsoft tools: A friend here has a brother-in-law at
Microsoft, but he (the b-i-l) was not able/allowed to tell us much about
their system. They use it for developing a lot of their software, including
the compilers themselves by rumor (i.e. the compiler is itself executing in
p-code, as well as translating p-code) but did not seem willing to talk to us
about licensing the tools to us. :-( Unless your friends have a spare $1M+
to change their minds, that route may not work for you.
Before we settled on the A.C.K. at our company, I attended a summer class
session at WICS at Stanford and was able to talk to John Hennessy and Susan
Graham about the issue of compactness. Besides the pat answer of "Why do
you want it to be compact? Just add more RAM." :-( the main consensus was
that other than using ACK the best alternative is to write your own interpreter
and then retarget the GNU C compiler to it, since the sources are available.
Needless to say, this is also a VERY expensive alternative (not cheap) because
of the man-months involved in developing both the compiler back-end and the
interpreter and then QC'ing the whole mess.
Hope this helps.
-- Clifton
Clifton W. Royston III V e r i F o n e
cliftonr@veritoo.verifone.com 100 Kahelu Avenue
Mililani, HI 96789
TEL: +1 808 623 2911
FAX: +1 808 625 3201
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.