clifton_r@verifone.com (Clifton Royston) (10/23/90)
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 -- Send compilers articles to compilers@esegue.segue.boston.ma.us {ima | spdcc | world}!esegue. Meta-mail to compilers-request@esegue.