Path: utzoo!utgpu!attcan!uunet!husc6!mailrus!cornell!uw-beaver!uoregon!will From: will@uoregon.uoregon.edu (William Clinger) Newsgroups: comp.arch Subject: Re: Machine-independent intermediate languages Message-ID: <2924@uoregon.uoregon.edu> Date: 4 Oct 88 22:55:23 GMT References: <853@goofy.megatest.UUCP> <905@sword.bellcore.com> Reply-To: will@fog.UUCP (William Clinger) Organization: University of Oregon, Computer Science, Eugene OR Lines: 36 In article <905@sword.bellcore.com> yba@sabre.bellcore.com (Mark Levine) writes: >An old bootstrapping technique I have seen used well is to have a >"virtual machine", say a single stack machine, which you implement on >each target using whatever the best tools on the target allow.... This works, but there are usually a few inefficiencies caused by mismatches between the virtual and actual target machines. For example, if the virtual machine has general registers but the target machine has separate address and data registers, then it is likely that extra register-register move instructions will be generated that could have been avoided by a custom code generator. >Is there resistance to the idea of writing the language first, then seeing >what it takes to execute it efficiently, and _then_ designing the hardware? Yes, because people have the impression that hardware designed that way will run only one language (or language family) efficiently. Few people are willing to put up with that unless the language is Fortran or C. >On the other hand, the LISP machines and the SCHEME chip don't seem to be >setting the world on fire. What does the current folklore hold? Current folklore holds that general purpose processors, coupled with good compilers, deliver nearly the same performance and cost no more than special purpose processors for these languages. LISP machine users counter that their machines offer performance advantages other than raw speed: the programming environment, safety (dynamic error checking), no need to waste programmer time on type declarations, and so on. The SCHEME chips were one-of-a-kind by-products of academic research into VLSI design, and deliberately used an interpreter-oriented and rather low-performance architecture, so they were never intended to set the world on fire. William Clinger