Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!cwjcc!gatech!purdue!decwrl!sun!pitstop!sundc!seismo!uunet!mcvax!ukc!eagle!icdoc!ist!itcp
From: itcp@ist.CO.UK (News reading a/c for itcp)
Newsgroups: comp.arch
Subject: Re: Software Distribution
Message-ID: <340@istop.ist.CO.UK>
Date: 21 Sep 88 12:20:17 GMT
References: <5655@june.cs.washington.edu>
Organization: Imperial Software Technology, London, UK
Lines: 50

I have felt in my bones that an efficient Intermediate Language for
conventional processors (MC680xx, iAPX386, VAXen, NS32xxx and all RISC
architectures) is realistic proposition. This discussion has encouraged me
to think that I am not alone (and thus less likely to be wrong?).

As people have noted it has to have something like the functionality of
C, only with extensions to allow (where the source language required
it) the specific semantics of a data type (storage size and address
alignment) and operation (precision of operation).  Use of these
specifications may reduce performance on some architectures so the IL
includes unspecified versions where the semantics are `as loose as
possible' to allow local optimisations (block move, particular integer
length, etc.).  The code generator for this IL is larger and more
complex than for C.  It may not be possible to support an architecture
not in the list above efficiently - to try (in some standards committee
composed of any processor manufacturer who wanted in) would doom the
project.

But, I would like to see this not for Software Distribution but for the
development of Programming Languages.  The definition of such an IL and
the wide availability of code generators would do for Programming
Languages what UNIX and C did for Processor Architectures.  It provides
a portablility route that drastically reduces the time and costs of
getting to market.  By concentrating code generation in a single place
it should also allow advances in code optimisation techniques and
processor architecture design (unless the IL is not general enough and
ends up constraining it :-( ).

Good though this would be for the advancement of Computer Science I
cannot see it being commercial.  That is, I could not imagine a
Company that produces the IL definition and sufficient code generators
and compiler front ends to establish a momentum making a profit. :-(.
Maybe Stallman and the FSF could do it, how they pay the rent beats me.

For software distribution I think Doug Keppel has the most pragmatic
and cost effective solution - the use of obfuscated C source as the IL:

From article <5655@june.cs.washington.edu>, by pardo@june.cs.washington.edu (David Keppel):
>>[ High-level IR (intermediate representation) needed for distribution ]
>>[ The customer can modify C too easily ]
> 
> I'll claim that I can pretty easily write a program that takes
> ordinary C programs and makes them gosh-almighty hard to understand.
> [example follows]
> 

[Usual disclaimer: this represents only my hastily assembled opinion and
		   spelling, and not necessarily anyonelse's]

	Tom (itcp@uk.co.ist)