Google
 

Trailing-Edge - PDP-10 Archives - fortv11 - fortra.doc
There are 10 other files named fortra.doc in the archive. Click here to see a list.


                           Fortran-10 Version 11

                             Field-Test Tape 3


                               January 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 Field-Test Tape 3                         Page 2


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


   1.0  SUMMARY

   This is the third field-test tape of Version 11  of  Fortran-10/20.   It
   contains   all   of   the   functionality  that  will  be  supported  by
   Fortran-10/20 version 11.

   Fortran-10/20 is validated at the full level of the Fortran-77 standard.

   The new features included on this tape are:

    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.

   This tape also contains a copy of the latest maintenance level  of  LINK
   version 6.  This version of LINK is required in order to support the new
   long-symbol features of Fortran version 11.
Fortran-10 Version 11 Field-Test Tape 3                         Page 4


   1.1  Bibliography

   A draft copy of the  revised  Fortran-10/20  Language  Manual  has  been
   included  on  this  tape.  In addition, Section 2 of this document lists
   the new features and provides preliminary documentation on their use.



   1.2  Monitors

   This version of Fortran will run on Tops-10 7.02 and 7.03.



   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 53A(1152)


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

           SORT 5(517)
           DIL (Data Interchange Library)
Fortran-10 Version 11 Field-Test Tape 3                         Page 5


   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 Field-Test Tape 3                         Page 6


   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 Field-Test Tape 3                         Page 7


   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 Field-Test Tape 3                         Page 8


   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, 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.

   [End of FORTRA.DOC]