Precedent for use of =

Ed Nather nather at ut-sally.UUCP
Fri Jun 20 10:06:44 AEST 1986


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 at astro.AS.UTEXAS.EDU



More information about the Comp.lang.c mailing list