Path: utzoo!yunexus!geac!syntron!jtsv16!uunet!husc6!mailrus!wasatch!utah-gr!uplherc!esunix!bpendlet From: bpendlet@esunix.UUCP (Bob Pendleton) Newsgroups: comp.arch Subject: Re: Semantics (was Software Distribution) Message-ID: <1000@esunix.UUCP> Date: 10 Oct 88 14:48:53 GMT Article-I.D.: esunix.1000 References: <13914@mimsy.UUCP> Organization: Evans & Sutherland, Salt Lake City, Utah Lines: 47 From article <13914@mimsy.UUCP>, by chris@mimsy.UUCP (Chris Torek): > In article <16603@shemp.CS.UCLA.EDU> casey@admin.cognet.ucla.edu > (Casey Leedom) writes: >> As Steve pointed out, what we're probably dealing with is a >>misunderstanding about the usage of the word "define". > > Probably true. Someone wanted a Machine Independent Intermediate ^^^^^^^ Fame is so short lived. Leave the discussion for 48 hours and you become just an anonymous "someone." > Language to include assertions that would pin down the exact action of > various `undefined' actions (1/0, *(type*)NULL, etc). I claim that > this is, or should be, unnecessary (regardless of the feasibility of > MIILs). That these actions are `defined as undefined' is not self > contradictory, but it certainly does make for misunderstandings! Before I go on let me say that I've realized that I've been using the term portable to mean machine independent. Where portable should mean something like "can be moved to a new machine with some effort", and machine independent should mean something like "can be moved to a new machine with at most a recompilation." Defined as undefined is a perfectly valid way to define the actions of an operand on particular subranges, like * on NULL and square root on negative numbers. But, from the point of view of trying to make programs machine independent it is a useless definition. This kind of definition forces me to test a program on every existing machine architecture, using every existing compiler for each architecture, and even on every new release of each compiler, before I can claim that the program is machine independent. Using a language that has features that are defined as undefined and limited resources I can have no assurance that the program is machine independent. I can only hope that it is portable. Clearly, I hope, there is a gap between the goals of a MIIL (Machine Independent Intermediate Language) and a langauge that is defined in such a way as to be machine dependent. This gap requires that the machine dependent parts of such a language must be bound to MIIL dependent definitions before the language can used as a source language for compilation to MIIL. -- Bob Pendleton, speaking only for myself. An average hammer is better for driving nails than a superior wrench. When your only tool is a hammer, everything starts looking like a nail. UUCP Address: decwrl!esunix!bpendlet or utah-cs!esunix!bpendlet