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)