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]