[comp.lang.fortran] More 8x Information

psmith@convex.UUCP (01/25/88)

-------------------------------------------------------------------

               Summary of the FORTRAN 8x Issues

               By Presley Smith and Bob Metzger
                 CONVEX Computer Corporation


If you've recently seen the rash of articles about FORTRAN 8x,  you
might be curious as to what the fuss is all about.  In the next few pages,
I'll try to give you some facts that will help you understand what
is happening with the proposed FORTRAN 8x standard.  


                    Status of the Proposed Standard

The ANSI X3 committee approved the draft proposed ANSI standard, FORTRAN 8x
for public review on August 20, 1987.   The results were:

	31  for public review
	 4  against ... IBM, UNISYS, DEC, and DG
	 2  abstained .. Omnicom, Inc. and Railinc Corp
	 1  ballot not returned

One thing is interesting.  DG had voted YES on both the letter ballot and 
role call vote on the X3J3 FORTRAN Technical Committee but the DG  
representative on X3, the management committee, voted NO.  

Harris was the other major vendor that voted NO on the X3J3 committee.
They don't have a member on X3.  

Public review started on October 23, 1987 and will terminate on February
23, 1988.  All letters and comments must be in Washington, DC by 
February 23, 1988.

During this period, the FORTRAN community has the opportunity to "vote" on
the proposed standard by reviewing the document and writing letters to 
the committee.  Each public comment must be answered in writing by the
FORTRAN Technical Committee, X3J3.  If the FORTRAN community does NOT write 
letters commenting on the proposed standard, then the standard will be
approved without change. 


                       Details of the Issues

CONVEX, IBM, DEC, UNISYS, and Harris have all gone on the record as 
opposing the draft FORTRAN 8x standard in its current form.  This group
is not opposed to the entire 8x proposal, but believes that certain portions
of the proposal are not in the best interest of the FORTRAN community.
IBM, DEC, UNISYS, and Harris (and now Data General) all voted NO to 
forwarding the proposed standard for public review.  Some of their 
comments and concerns are noted later in this paper.

The main proponents of the proposed standard are government labs like
Lawrence Livermore, Los Alamos, etc.  The committee is structured so that
each member gets one vote.  The problem is that a company the size of
IBM is considered one member, but within the government, each lab, or 
subentity can be considered a member.  The Department of Energy labs
have several members on the committee, each with one vote.  IBM, DEC,
Unisys, and others are concerned about the investment that their customers
have in code that has been around for years.  Other members of the committee
do not appear to have the same concerns for various reasons.  Certain 
members of the committee feel that the committee is on the wrong track,
and only public review will change the direction of the committee.  Some 
of these comments are summarized later in this paper.

The feeling of many of the vendors and of CONVEX is that the proposed
standard adds to much complexity to the language while still ignoring
features requested by the public -- such as bit data types and POINTERs.
Some features that are in general use, such as the DO WHILE and INCLUDE
statements, have not been standardized.  Some of the proposed new features
will potentially cause *significant* performance degradation in both
compilations and executions.

Many times FORTRAN users say they want FORTRAN 8x because they know about
some portions of 8x, such as the array notation of which a *subset* has been
implemented by some vendors in their compilers.  What they don't realize 
is that with this favorite extension comes 33 new statements and a
*potential* that DIMENSION, COMMON, and EQUIVALENCE will be removed in 
some future standard, causing vast amounts of code to be rewritten over
the next 10-20 years.

     THERE ARE NO SUBSETS OF THE NEW FORTRAN 8x STANDARD...
            YOU GET IT ALL IF YOU GET ANY OF IT.


The facts are that the proposed FORTRAN 8x: 

	- Contains all of FORTRAN 77 plus most of the constructs of 
	  the Ada language;  it is nearly double the size of the 
	  FORTRAN 77 standard.

        - Adds 33 new statements.

	- Retains 36 statements from FORTRAN 77.

	- "Decrements" (i.e., proposes to make obsolete in the future)
	  14 statements (like: COMMON, EQUIVALENCE, DIMENSION, 
	  DOUBLE PRECISION...).
        
The following table (taken from the IBM ballot) compares the size of 
FORTRAN 8x and Ada:

         Item                       Ada     FORTRAN 8x

      Statements                     49         84
      Syntax rules                  179        280
      Keywords and operators         84        144
      Intrinsic functions            49         97


Another key problem in the standard is the addition of the dependent
compilation model, which requires a programming environment to be
developed for FORTRAN.  Currently, when the compiler compiles a subroutine, 
it only must know about the subroutine that it is compiling.  In FORTRAN 8x,
the environment of the subroutine, information on *all the subroutines that 
are related* to the subroutine being compiled must be known to the compiler
at compilation time (like Ada).  Such a process will slow the compiler down,
considerably.


                     Summary of Written Comments

The following are selected ballot comments from some of the committee members
who voted NO to forwarding the proposed standard for public review:

IBM: "The difficulty with 8x lies not in the quality of the work that
X3J3 has done but rather in the somewhat surprising observation that
the result of X3J3's work is a new language, and not a revision of 
FORTRAN."  

DEC: "We believe that publishing this document may jeopardize the past
successes of FORTRAN in its attempt to make several major changes to 
the language."

Unisys: "We feel that the addition of the entire package of modern programming
language features has warped the language nearly beyond recognition.  It is 
our opinion that the committee has spent too much time in language design at
the expense of standardizing current practice.  We fear the proposed language
will no longer serve the community for which it was originally designed.  
The promoters of the modern language additions, on the other hand, contend
that the language already fails to serve that community and that if the 
committee does not make drastic changes to the language, users will abandon
it in favor of a modern language such as Ada.  Our reply is:  Let them use
Ada.  To paraphrase Mark Twain, we believe the predicted demise of FORTRAN
has been greatly exaggerated."

BOEING: "The standard has deviated too far from FORTRAN 77."


Many of the people who voted YES to send the standard out for public review
don't really want the current version to become the next FORTRAN standard.
Many on the committee are frustrated that rational proposals for change
continue to be voted down due to the makeup of the committee.  Many of 
these committee members believe that public review will help give the 
committee direction.  The following are comments from ballots of members
of the committee who voted YES to forward the standard for public review:

Harris: (Voted YES on letter ballot and NO on roll call ballot) "We have
some serious misgivings about the draft, but are willing to see if a
public review indicates that the public has similar misgivings." 

Cray: (Voted NO on letter ballot and YES on roll call) "The number of flaws
in the current document, in my judgment, make it unlikely that we will get
any meaningful public comment." 

Masscomp: "...voted for the review to 'help readjust the thinking of the 
committee...It's time to take this to the user community and see if they
are ready for it.'"  (Quoted from Electronics Magazine, August 6, 1987,
page 32.)

Another point of view was expressed in the Electronics Magazine article
of August 6, 1987:

"The opposition to FORTRAN 8x frustrates X3J3 leaders.  'Nothing is going
away.  Nothing will change from the programmer's viewpoint.  There only
will be more available to them,' says Jerrold Wagener, vice chairman of 
ANSI's X3J3 committee.  Wagener, the research director for the Amoco
Production Co. in Tulsa, OK, represents a large FORTRAN user.  He labels
most of the objections as 'red herrings or scare tactics' by compiler
suppliers who want to avoid the cost of reworking products."  ... "Wagener
assures users that the more widely used decremented statements -- like
COMMON and EQUIVALENCE -- will not be eligible for removal until 2010.
CONVEX's Smith worries that the mere threat of losing statements could
cause thousands of lines of code to be rewritten at high cost to users
and at the risk of software errors.  Wagener is sure this will not happen."


The CONVEX compiler group is NOT opposed to doing a new compiler, we just
want to make sure than when someone says "What about 8x?" that they know
what that REALLY means.  Most commonly that simply refers to some favorite  
proposed extension.  Typically they do NOT know the entire scope of the 
changes to the language, and the changes will be made in their FORTRAN 
programming methodology if the standard is adopted without change. 
There are many good features that will be of benefit to the FORTRAN 
community, but remember, the FORTRAN user does not get only the features
that benefit him if the standard is approved.  

To summarize: IBM's ballot comments appear appropriate (my comments in 
parentheses):

 O Large inventory of application code?  YES, but...

    8x does accept the existing FORTRAN 77 inventory, but that inventory
    comes with COMMON, EQUIVALENCE, ENTRY,... all of which 8x says are 
    obsolescent and can be deleted from future versions of the standard
    when their use becomes insignificant.

    (The exact wording of the proposed standard is: "Better methods exist
    in this document.  It is recommended that programmers use these better
    methods in new programs and convert existing code to these methods.
    As the new features of this and subsequent revisions of the standard
    supplant the deprecated features and they fall into disuse, it is 
    recommended that future FORTRAN standards committees move these features
    from the deprecated list to the obsolescent list."  Page B-2 and B-3.

    (The argument on the other side is that it will be 20 years before
    these statements will be removed if ever.  The issue is how much
    money and time will people spend converting programs with the 
    "potential" of removal in the future.  Also, who will determine that
    "enough" FORTRAN programs have been converted to make their use 
    insignificant.  It's a threat that will hang over FORTRAN.)

 O Preserve user investments in user training? NO.

    8x provides FORTRAN 77 compatibility to support "dusty decks,"  
    programmers are encouraged to use only the new language.  Of 72
    statements in this language, 31 are new and many statements now 
    in common use are "discouraged."  (A mixture of statements will 
    be a program maintenance nightmare--see example below.)

 O Preserve vendor investments in reliable compilers? NO.

    8x would have a major impact on many existing FORTRAN compilers. 
    All parts of a compiler would be affected by the significantly
    larger language; dictionary phases are heavily impacted by qualified
    names...and new data types.  Code generation is further impacted
    by structures, array language, and array descriptors.

    ...dependent compilation.  The USE statement requires information
    from other compilations.  This requires new library services, both to 
    store and control this information.  Other operating system services 
    are impacted: Link editing must now handle scopes for external names,
    for example.  


                         Call for Response

All members of the FORTRAN community are encouraged to find out more about
the FORTRAN 8x standard and to voice their opinions by writing to:

		X3 Secretariat
		311 First Street, NW,  Suite 500
		Washington, DC  20001-2178

		 Phone  202-737-8888

Draft standards may be ordered by contacting Global Engineering Documents,    
Inc. at 1-800-854-7179.  There will be a small fee to cover the cost of
production and shipping to obtain a copy.  Letters expressing opinions
should be addressed to this address. It is NOT a requirement that an 
individual obtain a copy of the proposed standard in order to comment on it. 

Remember, if the user community does not take the time to examine FORTRAN 8x
and voice their feelings before February 23, 1988, the new
version will be approved in its current form.  IBM, DEC, UNISYS, and CDC (who
voted YES for public review)  are all working with their user groups to 
inform them of the details of the proposed standard and are encouraging them
to write in and voice their opinions. 

alm@a.UUCP (Alex Marusak) (01/30/88)

In article <68000005@convex>, psmith@convex.UUCP writes:
> . . .
>                Summary of the FORTRAN 8x Issues
> 
>                By Presley Smith and Bob Metzger
>                  CONVEX Computer Corporation
> . . .
> The main proponents of the proposed standard are government labs like
> Lawrence Livermore, Los Alamos, etc. . .

The statement above is, I feel, misleading.  While strong support for
Fortran 8x has been voiced by some X3J3 members working at government
labs, equally strong support has come from X3J3 members who are
private-industry Fortran users, or who are employed by universities,
or who are employed by computer software and hardware vendors.

The number of X3J3 members working for government labs and voting
'yes' on the final (and critical) roll-call vote is FOUR.  The number
of X3J3 members NOT working for government labs and voting 'yes' on
the final roll-call vote is TWENTY-TWO.

By the way, I am the X3J3 voting member from Los Alamos National
Laboratory; and on the final roll-call vote to affirm the letter
ballot, I voted 'NO'.

hirchert@uxe.cso.uiuc.edu (02/04/88)

There's a lot of misinformation about Fortran 8x being distributed these days.
Take, for example, the information in
>               Summary of the FORTRAN 8x Issues
>
>               By Presley Smith and Bob Metzger
>                 CONVEX Computer Corporation
It beings with a fairly accurate summary of the status of the proposed
standard.  I could quibble with some of the details, but more serious
inaccuracies follow:
>The main proponents of the proposed standard are government labs like
>Lawrence Livermore, Los Alamos, etc.  The committee is structured so that
>each member gets one vote.  The problem is that a company the size of
>IBM is considered one member, but within the government, each lab, or 
>subentity can be considered a member.  The Department of Energy labs
>have several members on the committee, each with one vote.  ...
Actually, except for IBM, there are no companies on the committee, only
individual members employed by various companies and other organizations.
The authors are right that there cannot be more than individual member with
the same employer.  Note, however, that there are approximately 20 members
on the committee employed by computer vendors and only 4 employed by DoE
funded labs.  (If you wish to consider all U.S. government funded labs, add
in the two members from NSF funded labs.)  Furthermore, 2 of the 4 members
from DoE labs voted against the current draft (because of features that were
missing).  Where did the authors get the idea that the government labs are
pushing Fortran 8x over the objections of the vendors.  The truth of the matter
is that a significant majority of both the vendor employees and the user
employees voted to forward this draft.
>The feeling of many of the vendors and of CONVEX is that the proposed
>standard adds to much complexity to the language while still ignoring
>features requested by the public -- such as bit data types and POINTERs.
>Some features that are in general use, such as the DO WHILE and INCLUDE
>statements, have not been standardized.  Some of the proposed new features
>will potentially cause *significant* performance degradation in both
>compilations and executions.
As a member of X3J3, I was proposing pointers two years ago.  Other members
proposed them even earlier.  As best I can remember, none of the people
currently opposed to the draft supported any of these efforts.  It was only
when it became clear that their other objections would not be sufficient to
block the draft that they brought up the issue of pointers.  [In fairness
to the authors from Convex, they were not represented, so maybe they were
interested in pointers all along.]  Fortran 8x has a more general looping
mechanism than DO WHILE and a more powerful information transfer than INCLUDE.
X3J3 did not feel it appropriate to make the language still larger by 
adding these redundant features in the name of standardizing existing practice.
I keep seeing claims that 8x will cause sigificant performance degradation,
but except for the general comment that it is harder to compile a larger
language, I've never seen them backed up with specifics.
>Many times FORTRAN users say they want FORTRAN 8x because they know about
>some portions of 8x, such as the array notation of which a *subset* has been
>implemented by some vendors in their compilers.  What they don't realize 
>is that with this favorite extension comes 33 new statements and a
>*potential* that DIMENSION, COMMON, and EQUIVALENCE will be removed in 
>some future standard, causing vast amounts of code to be rewritten over
>the next 10-20 years.
Fortran syntax tends to use statements where an Algol-like language would use
a reserved word.  Hence, many of these new statements are just syntactic
placeholders.  E.g., you can now end a DO loop on an END DO statement and the
ends of main programs, subroutines, and functions can now be END PROGRAM,
END SUBROUTINE, and END FUNCTION rather than just END.  Most of these new
statements don't add much in the way of complexity.  The potential that current
features in the language might be removed in a future standard exists whether
or not Fortran 8x is adopted.  Fortran 8x *removes* this potential for all
but a handful of features in the standard immediately following it.  The only
place that DIMENSION, COMMON, and EQUIVALENCE are singled out is in an appendix
which has no legal significance.  Because there a "superior" alternatives to
these features in 8x, X3J3 believes that the use of these features will die
out in much the same way use of the arithmetic IF has died out since the
logical IF and block IF became available.  Hence, X3J3 recommends against the
continued use of these features in your programs.  Note, that when and if these
features will be dropped from the language will be determined by when and if
people stop using them, not vice versa.
>     THERE ARE NO SUBSETS OF THE NEW FORTRAN 8x STANDARD...
>            YOU GET IT ALL IF YOU GET ANY OF IT.
The version of 8x finally adopted might be a subset (or a superset) of what is
currently proposed.  Once adopted, you are free to implement a subset, just
don't call it standard Fortran.  The presence of the subset in FORTRAN 77
has caused all sorts of trouble for people that bought "standard-conforming
FORTRAN 77" compilers and didn't realize they were getting the subset.  X3J3
decided that official subsets weren't worth the grief.
>The facts are that the proposed FORTRAN 8x: 
>
>	- Contains all of FORTRAN 77 plus most of the constructs of 
>	  the Ada language;  it is nearly double the size of the 
>	  FORTRAN 77 standard.
The new stuff corresponds in complexity more to Pascal than Ada.  The more
commonly accepted estimate is that 8x is about 50% bigger than 77.
>        - Adds 33 new statements.
See earlier comment on how meaningful statement counts are.
>	- Retains 36 statements from FORTRAN 77.
All of them.
>	- "Decrements" (i.e., proposes to make obsolete in the future)
>	  14 statements (like: COMMON, EQUIVALENCE, DIMENSION, 
>	  DOUBLE PRECISION...).
As I said earlier, 8x warns that usage may make these features obsolete
(over a very, very long period of time) and warns against their continued use.
Usage, not the standard, will determine whether they are ever dropped.        
>The following table (taken from the IBM ballot) compares the size of 
>FORTRAN 8x and Ada:
>
>         Item                       Ada     FORTRAN 8x
>
>      Statements                     49         84
>      Syntax rules                  179        280
>      Keywords and operators         84        144
>      Intrinsic functions            49         97
From these numbers you are expected to conclude that 8x is bigger than Ada.
The problem with that logic is that if you collect the numbers for FORTRAN 77,
you will find they are comparable to the numbers show for Ada.  Now if you
believe that FORTRAN 77 is about the same size as Ada, I have some
wonderful ocean-front property in Illinois I would like to sell you. :-)
In other words, the differences in style between these languages makes
comparing these numbers meaningless.
>Another key problem in the standard is the addition of the dependent
>compilation model, which requires a programming environment to be
>developed for FORTRAN.  Currently, when the compiler compiles a subroutine, 
>it only must know about the subroutine that it is compiling.  In FORTRAN 8x,
>the environment of the subroutine, information on *all the subroutines that 
>are related* to the subroutine being compiled must be known to the compiler
>at compilation time (like Ada).  Such a process will slow the compiler down,
>considerably.
Information need be known only only about a special kind of program unit,
called a MODULE, and then only if the subroutine explicitly requests access
to information declared in that module.  If you don't use MODULEs, your
compilations will remain independent.  (If you use a MODULE, the compiler
will be to read in the requested information stored in its internal 
representation.  If you don't, you will have to provide that information in
your source code, and the compiler will have to convert that text into its
internal form.  Do the authors really believe that binary input will be slower
than textual input?)
>                     Summary of Written Comments
Deleted to save space.  There are some errors here, too, but not so many.
>                         Call for Response
>
>All members of the FORTRAN community are encouraged to find out more about
>the FORTRAN 8x standard and to voice their opinions by writing to:
>
>		X3 Secretariat
>		311 First Street, NW,  Suite 500
>		Washington, DC  20001-2178
>
>		 Phone  202-737-8888
Here we agree.  Whether you like 8x or hate it, don't leave the decision
making to others!
>Draft standards may be ordered by contacting Global Engineering Documents,    
>Inc. at 1-800-854-7179.  There will be a small fee to cover the cost of
                                          ^^^^^^^^^
Sadly, it is $50 for a 2-up photocopy.  X3J3 wanted to obtain a wider 
distribution at a lower price, but the bureaucrats said no.
>production and shipping to obtain a copy.  Letters expressing opinions
>should be addressed to this address. It is NOT a requirement that an 
>individual obtain a copy of the proposed standard in order to comment on it. 
>
>Remember, if the user community does not take the time to examine FORTRAN 8x
>and voice their feelings before February 23, 1988, the new
>version will be approved in its current form.   ...
Literally true, but improbable.  There is already enough comment in to assure
that the current draft will not just be "rubber-stamped".  It seems very 
likely that comments received during this period will serve as the basis for
revising the 8x proposal.  If there are any significant revisions to the
proposal, 8x will have to go out for another public comment period before
it can be submitted for approval.  However, changes are less likely to occur
as a result of a later public comment period, so now is the time to comment.

Kurt W. Hirchert          National Center for Supercomputing Applications