[comp.lang.fortran] An exercise in fultility

hybl@mbph.UUCP (Albert Hybl Dept of Biophysics SM) (01/06/89)

In article <583@mbph.UUCP> hybl@mbph.UUCP (Albert Hybl
Dept of Biophysics  SM), I wrote:
>
> After our law makers write and pass laws, the laws appear in a
> publication of state or federal statutes.  The legislature
> will try to correct a discovered flaw or ambiguity in a law
> during their next session.  In rare cases, a special
> session may be called to tackle the problem.  Ambiguities in
> the law can also be resolved by the courts.  All new laws,
> recently revised laws and notes of court cases are placed in
> the "Cumulative Annual Pocket Part" which is placed in the
> back of the appropriate volume of the statutes.

In message <83515@sun.uucp> khb@sun.UUCP (Keith Bierman - Sun
Tactical Engineering, Sun Microsystems, Mountain View) replied:
} 
} Our ANSI committee is similar. It sits in judgement of x3.8-1978, and
} this question was brought to them, and they decided that the plain
} meaning of the standard is that the code is WRONG. Thus compilers are
} allowed to do whatever they want.
}
The phrase "this question" refers to Steven Weintraub's
"Dubious Fortran Code Problem."  If Keith is right, then
the results of KEITH = SQRT(-16.00) could conceivably be
+4.0, -4.0, 42, x3.8-1978 on some machines or a useful diagnostic
on other machines!  This is an absurdity; obviously taking the SQRT
of a negative number "is WRONG.  Thus compilers are allowed to do
whatever they want."  Right?  As a user, I want every compiler
to produce the same result.  After all, the purpose of the
Fortran ANSI X3.9 1978 standard "is to promote portability
of FORTRAN programs for use on a variety of data processing
systems."
} 
} Issues brought before the comittee can be read about in the
} minutes of the meetings. Subscriptions are about $150/yr.
} Sign up as an Observer.  A condensed and cleaned up version
} should appear periodically, and FORTEC Forum would be a
} good venue.
} 
I am a member of national ACM and subscribe to Fortan Form.
I agree that it is a good venue to publish the "Cumulative
Annual Pocket Part" containing new extensions and
revisions of old language in the ANSI FORTRAN standard.
I was disappointed when the committee did not publish
the proposed 8x Standard in Fortran Forum.

I think that the committee is without real power!  They
can not enforce the standard so their panegyrist says
'When the code is WRONG, the compilers are allowed to
do whatever they want.'  If the name FORTRAN is not a
registered trademark, anyone can use it to sell anything.

I think that a trademark must be registered for the Language.
A Fortran Validation Suite must be created and before a compiler
is allowed to use the trademark it must pass the validation tests.
A registered trademark is a powerful tool.  The Mead Data Central
Inc., the firm that markets computerized legal data-base
services under the registered trademark Lexis, used the courts
to prevent Toyota Motor Corp from marketing a new line of cars
under the name Lexus.  Unless a Fortran Standardizing Organization
is willing and able to legally enforce the Standard, this
discussion will have been nothing but an exercise in futility.

----------------------------------------------------------------------
Albert Hybl, PhD.              Office UUCP: uunet!mimsy!mbph!hybl
Department of Biophysics       Home   UUCP: uunet!mimsy!mbph!hybl!ah
University of Maryland                CoSy: ahybl
School of Medicine
Baltimore, MD  21201                 Phone: (301) 328-7940 (Office)
----------------------------------------------------------------------

johnl@ima.ima.isc.com (John R. Levine) (01/06/89)

In article <584@mbph.UUCP> hybl@mbph.UUCP (Albert Hybl  Dept of Biophysics  SM) writes:
>...  As a user, I want every compilerto produce the same result. ...
>
>I think that a trademark must be registered for the Language.
>A Fortran Validation Suite must be created and before a compiler
>is allowed to use the trademark it must pass the validation tests.

Fortran originally was a trademark, but IBM released it into the public
domain in about 1960.  Trademark protection buys very little, other vendors
used names like Honeywell Algebraic Compiler, Altac, For Transit and whatever,
not unlike the various euphemisms for Unix currrently in use due to AT&T's
unwillingness to license their trademark until recently.

Besides, there are validation suites for Fortran.  The NBS or whatever it's
called these days has a fairly nice one, but considering the problems that
many compilers have getting the correct result for correct programs, asking
for consistent responses in error conditions is a lost cause.
-- 
John R. Levine, Segue Software, POB 349, Cambridge MA 02238, +1 617 492 3869
{ bbn | spdcc | decvax | harvard | yale }!ima!johnl, Levine@YALE.something
You're never too old to have a happy childhood.

ags@s.cc.purdue.edu (Dave Seaman) (01/06/89)

In article <584@mbph.UUCP> hybl@mbph.UUCP (Albert Hybl  Dept of Biophysics  SM) writes:
>I think that the committee is without real power!  They
>can not enforce the standard so their panegyrist says
>'When the code is WRONG, the compilers are allowed to
>do whatever they want.'  If the name FORTRAN is not a
>registered trademark, anyone can use it to sell anything.
------------------------------------------------------------------------------

Apparently you would prefer that the committee be selective in which parts
of the standard they should enforce.  In particular, you would like for
them to ignore:

	1.3.2. _Exclusions_.  This standard does not specify:

	    [...]

	  (4) The results when the rules of this standard fail to establish
	      an interpretation.

and:

	1.4. _Conformance_

	  [...]

	A processor conforms to this standard if it executes
	standard-conforming programs in a manner that fulfills the
	interpretations prescribed herein.  A standard-conforming
	processor may allow additional forms and relationships provided
	that such additions do not conflict with the standard forms and
	relationships.  [...]

------------------------------------------------------------------------------
If you want to lobby for this part of the standard to be changed, that is
certainly your right.  But to accuse the committee of "not enforcing the
standard" PRECISELY BECAUSE THEY ARE ENFORCING THE STANDARD seems like
twisted logic to me.

-- 
Dave Seaman	  					
ags@j.cc.purdue.edu

khb%chiba@Sun.COM (Keith Bierman - Sun Tactical Engineering) (01/07/89)

In article <584@mbph.UUCP> hybl@mbph.UUCP (Albert Hybl  Dept of Biophysics  SM) writes:
>}
>The phrase "this question" refers to Steven Weintraub's
>"Dubious Fortran Code Problem."  If Keith is right, then
>the results of KEITH = SQRT(-16.00) could conceivably be
>+4.0, -4.0, 42, x3.8-1978 on some machines or a useful diagnostic
>on other machines!  This is an absurdity; obviously taking the SQRT
>of a negative number "is WRONG.  Thus compilers are allowed to do
>whatever they want."  Right?  As a user, I want every compiler
>to produce the same result.  After all, the purpose of the
>Fortran ANSI X3.9 1978 standard "is to promote portability
>of FORTRAN programs for use on a variety of data processing
>systems."

There are things the standard says must be done. There are things that
the standard says must not be done. There are things which are left
purposely undefined (like how to tell the user that we was asked for
was absurd) which are left up to the vendor. If a vendor sells you a
compiler which returns +4 for the sqrt(-16) you should find a better
vendor. 

Different machines have different facilities. Older machines will
probably halt and core dump. IEEE floating point arithemtic machines
will do whatever the user asked for, continue with the value being NaN
(if memory serves), take a user coded exception handler, or abort and
core dump. Had x3j3 ordained that this must cause an abort, it would
be impossible to be fortran and to be IEEE compliant. It is far from
clear that this would have been a better state of affairs.


>I am a member of national ACM and subscribe to Fortan Form.
>I agree that it is a good venue to publish the "Cumulative
>Annual Pocket Part" containing new extensions and
>revisions of old language in the ANSI FORTRAN standard.
>I was disappointed when the committee did not publish
>the proposed 8x Standard in Fortran Forum.

As it happens there are ANSI rules which forbade this. These are
stupid rules and should be changed. The comparable European bodies
made it much easier to get copies of the proposed standard. However
anyone who wanted one was able to procure one; it was simply not as
easy as it should have been nor as cheap.

>
>I think that the committee is without real power!  They
>can not enforce the standard so their panegyrist says
>'When the code is WRONG, the compilers are allowed to
>do whatever they want.'  If the name FORTRAN is not a
>registered trademark, anyone can use it to sell anything.

But are users that stupid ? The last 20 years seem to have indicated
that users are very astute. 

Even without an enforcement arm, x3.8-1978 has been very successful. I
have personally written libraries which were 99% portable, with 1%
carefully marked as machine specific (machine epsilion and the like).
I have ported numerous large programs from machine to machine with
modest effort (followed by huge effort to maximize performance, but
until there is ONE TRUE MACHINE, that is another story).

>
>I think that a trademark must be registered for the Language.
>A Fortran Validation Suite must be created and before a compiler
>is allowed to use the trademark it must pass the validation tests.
>A registered trademark is a powerful tool.  The Mead Data Central
>Inc., the firm that markets computerized legal data-base
>services under the registered trademark Lexis, used the courts
>to prevent Toyota Motor Corp from marketing a new line of cars
>under the name Lexus.  Unless a Fortran Standardizing Organization
>is willing and able to legally enforce the Standard, this
>discussion will have been nothing but an exercise in futility.

Ada has proved that this is doable, but whether it is desireable is
very debatable. Furthermore this approach makes it impossible to have
vendor extensions. FORTRAN continues to be one of the most popular
languages in use because it serves the needs of a wide body of users.
Despite massive DoD support over a decade, Ada is just starting to
take root.

There are fortran validations suites, and GSA certifies compilers. My
personal experience is that GSA certification is nearly useless, as
certified compilers were in some cases awful, and uncertified ones
were wonderful. Unless the validation suite is 100% comprehensive and
totally bug free it provides a single (albeit potentially very useful)
data point for judging a compiler.

It is true that someone can offer you a blank notebook and floppy
disk, and call it FORTRAN. There is no one to stop him. But will you
buy it ? The standard is enforced by competitive pressures. Vendors
who make substandard products lose sales to those who do a good job.

Keith H. Bierman
It's Not My Fault ---- I Voted for Bill & Opus