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]