Google
 

Trailing-Edge - PDP-10 Archives - BB-D480G-SB_FORTRAN10_V11.0_short - fortra.doc
There are 10 other files named fortra.doc in the archive. Click here to see a list.


                   Fortran-10 -- Changes from V10 to V11


                               February 1987















   COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1981, 1987
   ALL RIGHTS RESERVED.

   THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE  USED  AND  COPIED
   ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
   OF THE ABOVE COPYRIGHT  NOTICE.   THIS  SOFTWARE  OR  ANY  OTHER  COPIES
   THEREOF  MAY  NOT  BE  PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER
   PERSON.   NO  TITLE  TO  AND  OWNERSHIP  OF  THE  SOFTWARE   IS   HEREBY
   TRANSFERRED.

   THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND
   SHOULD   NOT   BE   CONSTRUED  AS  A  COMMITMENT  BY  DIGITAL  EQUIPMENT
   CORPORATION.

   DIGITAL ASSUMES NO RESPONSIBILITY FOR THE  USE  OR  RELIABILITY  OF  ITS
   SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL.
Fortran-10 Version 11                                           Page 2


        1.0     SUMMARY  . . . . . . . . . . . . . . . . . . . . . . 3
        1.1       Bibliography . . . . . . . . . . . . . . . . . . . 4
        1.2       Monitors . . . . . . . . . . . . . . . . . . . . . 4
        1.3       Related System Software  . . . . . . . . . . . . . 5
        2.0     NEW FEATURES . . . . . . . . . . . . . . . . . . . . 6
        2.1       Long Symbols . . . . . . . . . . . . . . . . . . . 6
        2.1.1       Usage Of New Symbols . . . . . . . . . . . . . . 6
        2.1.1.1       LINK . . . . . . . . . . . . . . . . . . . . . 6
        2.1.1.2       Program Listings . . . . . . . . . . . . . . . 6
        2.1.1.3       Calling To Or From Other Languages . . . . . . 6
        2.1.2       Debugging With Long Symbols  . . . . . . . . . . 7
        2.1.2.1       FORDDT . . . . . . . . . . . . . . . . . . . . 7
        2.1.2.2       DDT  . . . . . . . . . . . . . . . . . . . . . 7
        2.1.2.3       Symbol Table Conflicts . . . . . . . . . . . . 7
        2.1.3       Ambiguous Constructs   . . . . . . . . . . . . . 7
        2.1.3.1       PARAMETER  . . . . . . . . . . . . . . . . . . 8
        2.1.3.2       <type> FUNCTION <long Symbol>  . . . . . . . . 8
        2.1.4       Utilities Which Do Not Support Long Symbols  . . 8
        2.1.5       Incompatibilities With Older Programs  . . . . . 9
        2.2       Single-character Object-Code Performance . . . . . 9
        2.3       Substring Support In FORDDT  . . . . . . . . . . . 9
        3.0     RESTRICTIONS . . . . . . . . . . . . . . . . . . . . 9
        3.1       Utilities Which Do Not Support Long Symbols  . .  10
        4.0     KNOWN BUGS AND DEFICIENCIES  . . . . . . . . . . .  10
        5.0     COMPATIBILITY WITH PREVIOUS VERSIONS . . . . . . .  10
        6.0     INTERNAL CHANGES . . . . . . . . . . . . . . . . .  10
Fortran-10 Version 11                                           Page 3


   1.0  SUMMARY

   Version 11 of  Fortran-10  is  a  development  release  of  the  Fortran
   compiler, FOROTS, FORLIB and FORDDT.  Fortran-10 version 11 is validated
   at the full level of the Fortran-77 standard.

   The major new features include

    o  Support for long symbol names up to 31 characters  in  length.   The
       dollar-sign  ($) and underscore (_) characters are allowed in symbol
       names.

    o  Support for long symbol names in FORDDT under /DEBUG.

    o  Single-character object code performance enhancements.

    o  Support for character substrings in FORDDT.


   This tape contains copies of the version  11  compiler,  FOROTS  (called
   FORO11.EXE), FORLIB and FORDDT.

   Note that you must use LINK 6.0(2404) or  later  for  linking  the  .REL
   files generated by this version of Fortran.
Fortran-10 Version 11                                           Page 4


   1.1  Bibliography

   Two copies of each of the  following  manuals  are  enclosed  with  this
   release tape.

   The Fortran language  and  this  implementation  are  described  in  the
   reference manual:

        TOPS-10/20 Fortran Language Manual
          AD-N383B-T1

   The installation procedures for this tape are described in:

        TOPS-10 Fortran Installation Guide
          AA-P345C-TB


   There is also a booklet which provides quick reference information about
   Fortran-10/20:

        TOPS-10/20 Fortran Pocket Guide
          AA-P529C-TK

   The algorithms and accuracy of the math routines in FORLIB are described
   in:

        TOPS-10/20 Common Math Library Reference Manual
          AA-M400A-TK

   Similarities and differences between Fortran-10/20 and  VAX/VMS  Fortran
   are described in:

        Fortran-10/20 and VAX Fortran Compatibility Manual
          AA-Y868C-TK

   It is recommended that you also refer to

        American National Standard Programming Language FORTRAN
        (ANSI X3.9-1978)

   Copies of this standard may be obtained from:
          
           American National Standards Institute
           1430 Broadway
           New York, NY 10018




   1.2  Monitors

   This version of Fortran will run on Tops-10 7.02 and 7.03.
Fortran-10 Version 11                                           Page 5


   1.3  Related System Software

   The following system software must be used  with  Fortran-10/20  version
   11:

           LINK 6(2404) or later

   The following system software must be used to build Fortran  version  11
   from sources:

           BLIS10 7E(227)
           MACRO 53B(1244)


   The following optional software may be used with Fortran-10/20 V11:

           SORT 5(536)
           DIL (Data Interchange Library)
Fortran-10 Version 11                                           Page 6


   2.0  NEW FEATURES

   2.1  Long Symbols

   Fortran-10/20 version 11 supports VMS-compatible long symbol names up to
   31  characters in length.  In addition, the characters "$" (dollar-sign)
   and "_" (underscore) are allowed in  symbol  names  anywhere  after  the
   first character of the symbol, which must be alphabetic.



   2.1.1  Usage Of New Symbols -

   All Fortran identifiers may be in the new format.

   This  includes  variable,  array,  COMMON  block,  PROGRAM,  SUBROUTINE,
   FUNCTION, PARAMETER, NAMELIST, and BLOCK DATA names.


                                     NOTE

       Long symbols should not be used with overlays,  as  the  overlay
       handler  does not support the new long-symbol .REL block format.
       There are no plans to modify the overlay handler to provide such
       support.





   2.1.1.1  LINK -

   Long symbol names require LINK 6(2404).



   2.1.1.2  Program Listings -

   Fortran listings will display the new long  symbols  where  appropriate;
   they  will  not  be  truncated.   Table  alignments have been changed to
   accommodate the longer names.



   2.1.1.3  Calling To Or From Other Languages -

   Other languages may not support long symbols.   Their  symbols  will  be
   truncated  to  6  characters.  Since the underscore (_) character is not
   representable in RADIX50 format, it will be translated, usually to  "%",
   sometimes  to  ".",  depending on the language.  Mixing program units in
   different languages can result  in  ambiguities.   A  symbol  SIN_  will
   appear  in  the  symbol  table  as  SIN. -- the same as the Fortran Math
   Library routine.
Fortran-10 Version 11                                           Page 7


   2.1.2  Debugging With Long Symbols -



   2.1.2.1  FORDDT -

   Long symbols will be available to  the  Fortran  debugger  only  if  the
   /DEBUG switch is specified at compile time.  If the /DEBUG switch is not
   used, long symbols will in effect be truncated to 6 characters as far as
   FORDDT is concerned.



   2.1.2.2  DDT -

   The DDT symbol table output by LINK does not support long symbols, which
   are truncated to 6 characters.  Underscores in symbols are translated to
   "%".



   2.1.2.3  Symbol Table Conflicts -

   If /DEBUG is not specified when using long symbols with  FORDDT,  or  if
   DDT  is  being  used  to  debug  a program containing long symbols, some
   ambiguities may arise if the first 6 characters of a  long  symbol  name
   are not unique.  If the following Fortran fragment

        CALL FOOBAR1 (A,B)
        CALL FOOBAR2 (C,D)

   is compiled  /NODEBUG  and  debugged  with  FORDDT  or  DDT,  both  long
   subroutine  names will appear in the symbol table as "FOOBAR".  Likewise
   for

        CALL SUB (DF_EXPAND,B)

   the first subroutine argument name will appear in the symbol table as

        DF%EXP

   which may conflict with a Macro, monitor or Fortran runtime symbol.   In
   these  cases  FORDDT  will  search the symbol table and return the first
   matching  symbol  found,  not  necessarily  the  long  symbol  the  user
   intended.



   2.1.3  Ambiguous Constructs -

   The following constructs are ambiguous in  both  Fortran-10/20  and  VMS
   Fortran.
Fortran-10 Version 11                                           Page 8


   2.1.3.1  PARAMETER -

   No long variable name on the left-hand  side  of  an  assignment  should
   begin  with  the  characters  "PARAMETER".   The old style (pre-ANSI 77)
   PARAMETER statements are indistinguishable from an assignment statement.
   The PARAMETER statement

        PARAMETER I = 1

   cannot be distinguished from the assignment statement:

        PARAMETERI = 1

   because spaces have no meaning in Fortran syntax.



   2.1.3.2  <type> FUNCTION <long Symbol> -

   When given as a first statement, or directly following an END statement,
   this  must  be  a  function  declaration.   Otherwise  it  is  an  array
   declaration.  It is ambiguous, and can  only  be  disambiguated  by  its
   position in the program.

   As a result

        INTEGER FUNCTION FRED(ARG1,ARG2)

   cannot be distinguished from

        INTEGER FUNCTIONFRED(ARG1,ARG2)




   2.1.4  Utilities Which Do Not Support Long Symbols -

   In addition to the restrictions mentioned above for DDT and the  overlay
   handler, the following utilities do not support long-symbol .REL blocks,
   and should not be used with program units employing long-symbols.  There
   are no plans to modify any of these programs to remove the restriction.

    o  GLOB

    o  MAKLIB

   MACRO does not support the generation of long-id  .REL  blocks  (symbols
   longer  than  6  characters  are  truncated  to 6).  Therefore it is not
   possible to call a MACRO subroutine  with  a  long  name  from  Fortran.
   There are no plans to modify MACRO to provide this support.
Fortran-10 Version 11                                           Page 9


   2.1.5  Incompatibilities With Older Programs -

   In the past, the Fortran compiler has  ignored  (after  a  warning)  any
   symbol-name  characters  after  the  initial 6 characters, so FOOBAR and
   FOOBARBAZ appear as identical symbols.  This is  no  longer  true.   Old
   programs which depend on this old behavior will get different results.



   2.2  Single-character Object-Code Performance

   Previously,  the  code  generated  for  all  character  assignments  and
   relationals  is  a  call  to  a  library routine which uses the extended
   string instructions.  This version of Fortran  optimizes  this  code  by
   generating  inline  byte  instructions for single-character assignments,
   one of the more common kinds of character data  assignments.   Thus  the
   assignment

                        A = B

   where A and B are both single-character, generates  the  following  code
   pattern:

                        LDB     R1,B
                        DPB     R1,A

   This code can be expected to increase runtime performance by a factor of
   3 or 4 over currently generated code performing the same assignment.

   Likewise for a relational such as (A.LT.B) where  A  and  B  are  single
   character, optimized code follows the pattern:

                        LDB     R1,A
                        LDB     R2,B
                        CAML    R1,R2




   2.3  Substring Support In FORDDT

   FORDDT previously lacked the ability to handle character  substrings  in
   ACCEPT,  TYPE  and  GROUP statements.  The version of FORDDT included on
   this tape supports the use of substring references  wherever  references
   to  character  data  are  allowed.   The syntax for specifying substring
   references in FORDDT is the same as for the compiler.



   3.0  RESTRICTIONS

Fortran-10 Version 11                                          Page 10


   3.1  Utilities Which Do Not Support Long Symbols

   As noted in the section on Long Symbols, the overlay handler, GLOB,  and
   MAKLIB  do not support long-id .REL blocks generated by LINK.  There are
   no plans to modify these programs to provide such support.

   MACRO does not support long symbol names.  Therefore, the names of MACRO
   subroutines  called  from  a  Fortran  program cannot be longer than six
   characters.



   4.0  KNOWN BUGS AND DEFICIENCIES

   None.



   5.0  COMPATIBILITY WITH PREVIOUS VERSIONS

   Fortran V11 will support programs that currently run under Fortran V10.



   6.0  INTERNAL CHANGES

   FOROTS, the compiler, and FORDDT have been modified to support  the  new
   features  that  are  in  this  release.  Complete revision histories are
   contained in REVHST.MAC (for the compiler), FORHST.MAC (for FOROTS), and
   FORDDT.MAC (for FORDDT).

   [End of FORTRA.DOC]