Path: utzoo!mnetor!uunet!seismo!sundc!pitstop!texsun!texsun.central-relay.sun.com!convex!authorplaceholder From: psmith@convex.UUCP Newsgroups: comp.lang.fortran Subject: More 8x Information Message-ID: <68000005@convex> Date: 25 Jan 88 00:04:00 GMT Lines: 271 Nf-ID: #N:convex:68000005:000:13041 Nf-From: convex.UUCP!psmith Jan 24 18:04:00 1988 ------------------------------------------------------------------- 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.