Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!godot!ima!johnl
From: johnl@ima.UUCP
Newsgroups: net.lang
Subject: Re: Re: Smart compilers
Message-ID: <457@ima.UUCP>
Date: Sun, 13-Jan-85 23:38:19 EST
Article-I.D.: ima.457
Posted: Sun Jan 13 23:38:19 1985
Date-Received: Tue, 15-Jan-85 02:11:14 EST
Lines: 14
Nf-ID: #R:cheviot:-20600:ima:9800003:000:695
Nf-From: ima!johnl    Jan 12 23:13:00 1985

>For example, suppose SQRT was a user function which
>modified the COMMON block variable I as a side-effect. Or suppose, SQRT
>gave a negative result and Y was EQUIVALENCE'd onto X(3).

Ah, but it's not.  The Fortran 77 committee gave a lot of thought to making
sure that useful optimizations would be possible.  One of the things they did
was to define a list of "intrinsic" functions of which SQRT was one, and to say
that they are well-behaved.  If for some masochistic reason you want to define
your own version of SQRT, you have to declare it in a special EXTERNAL
statement, and the compiler is duly warned to be careful.

John Levine, ima!johnl

PS:  So how does this all work on a Perq?