Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!henry
From: henry@utzoo.UUCP (Henry Spencer)
Newsgroups: comp.arch
Subject: Re: C machine
Message-ID: <9068@utzoo.UUCP>
Date: Mon, 7-Dec-87 19:47:02 EST
Article-I.D.: utzoo.9068
Posted: Mon Dec  7 19:47:02 1987
Date-Received: Mon, 7-Dec-87 19:47:02 EST
References: <759@auscso.UUCP>
Organization: U of Toronto Zoology
Lines: 44
Keywords: C, Lilith (sp?), In Progress?

> ... because of this design, the machine could
> execute compiled Modula programs much faster than any general purpose CPU 
> in the same word-size/clock-speed class.

The real question, though, is how it compares in speed to general-purpose
CPUs that are in the same cost/delivery-time class.  The usual answer is
"not well", unless the language needs some odd feature that conventional
hardware does not do well at.  Even then, cleverness can often substitute
for special hardware.  Worse, even if the thing is competitive when first
built, remember that there are enormous resources pushing the development
of faster and better general-purpose CPUs.  The Lisp machines, for example,
are visibly dying as the combination of clever implementations and steadily
climbing general-purpose performance leaves them behind.

> If this is true, I would like to know if anyone out there is working
> on a similar machine designed to work more efficiently with C programs.

Since C is designed with efficiency on conventional machines in mind, it
is not clear why anyone would bother.  Actually, there was one such, the
BBN C-70, but I don't think it went anywhere.  About the only thing of
real note for running C well is an efficient procedure call, but after
the bad example of the VAX, most everybody does that very carefully anyway.

> It seems that this would be the ultimate UNIX machine, eliminating the
> need for assembly patches to the kernel.  It could run a completely 
> portable version of UNIX and be very quick about it.

Sorry, no.  There are still things that are difficult or impossible to do
in C unless your compiler essentially includes a primitive form of
assembler inside it.  Besides, why bother?  The assembler parts of the
kernel are manageably small already.  "Complete portability" is an illusion;
most of the work in a Unix port is in compilers and in things like memory
management and hardware handling anyway.

Also of significance is that many Unix machines are sold for applications
work.  For example, running big Fortran programs.  One reason for Unix's
appeal is precisely that it is *not* committed to a single language.

Oh, if you did it carefully you might be able to get some small win without
losing too much in other areas, but why bother?  You will get better results
investing that effort in speeding up the 68020, I'm afraid.
-- 
Those who do not understand Unix are |  Henry Spencer @ U of Toronto Zoology
condemned to reinvent it, poorly.    | {allegra,ihnp4,decvax,utai}!utzoo!henry