Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!cs.utexas.edu!sm.unisys.com!ism780c!news From: news@ism780c.isc.com (News system) Newsgroups: comp.arch Subject: Re: Semantics (was Software Distribution) Message-ID: <17934@ism780c.isc.com> Date: 13 Oct 88 20:49:26 GMT References: <13914@mimsy.UUCP> <1000@esunix.UUCP> Reply-To: marv@ism780.UUCP (Marvin Rubinstein) Organization: Interactive Systems Corp., Santa Monica CA Lines: 23 In article <1000@esunix.UUCP> bpendlet@esunix.UUCP (Bob Pendleton) writes: >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. Defining it won't make it so. Even if I wrote programs in a language where the semantics for every legal syntactical construct was *EXACTLY* specified, I would still test my program on every combination of machine and compiler for which I would like to guarantee that my program runs correctly. For although I never make mistakes :-), I cannot say the same for the people who write operating systems and compilers. (I have even encountered hardware that does not work as advertised.) Would anyone guarantee a program distributed in a form that required that the customer compile it and link it before using it? Marv Rubinstein