Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!princeton!caip!think!harvard!ut-sally!nather From: nather@ut-sally.UUCP (Ed Nather) Newsgroups: net.lang.c Subject: Re: Precedent for use of = Message-ID: <5166@ut-sally.UUCP> Date: Thu, 19-Jun-86 20:06:44 EDT Article-I.D.: ut-sally.5166 Posted: Thu Jun 19 20:06:44 1986 Date-Received: Sat, 21-Jun-86 12:01:40 EDT References: <1331@brl-smoke.ARPA> <3544@ut-ngp.UUCP> Organization: U. Texas CS Dept., Austin, Texas Lines: 32 Summary: assignment vs equality In one important sense, the use of "=" as an assignment operator is extremely unfortunate (though widespread) because, historically, it meant "equality" in the mathematical sense. Thus the phrase i = i + 1 is impossible unless i has the value "infinity". We have come to understand this, however, to mean "increase the value of i by 1" so the sense of "equality" has been replaced by the time-dependent assignment process. Equality has bad connotations in many ways: it implied, at one time, a "universal, timeless" sort of equivalence, and many mathematicians came to think of things being "eternally equal" -- in the sense that time-dependence did not enter. Yet the essential character of a computer (when it is up) is change with time. So even the use of "==" for equality isn't the same: the phrase if(i == 1) says "if i CURRENTLY has the value 1, then ..." which has the implication of change, or at least potential change, built in. Early Algol used a left-pointing arrow as the assignment operator, but that was not included in the ASCII character set; that decision may be one of the costliest technical blunders of our time. -- Ed Nather Astronomy Dept, U of Texas @ Austin {allegra,ihnp4}!{noao,ut-sally}!utastro!nather nather@astro.AS.UTEXAS.EDU