DCL:MATH1:Summary:FORTRAN77 Standard
Standards for computer languages are set by standard organizations (in Japan, JIS) and the International Organization for Standardization (ISO). FORTRAN is no exception, and its standards are:
Language standards are similar to "Japanese grammar," and one must
know them to make the computer carry out the desired operations. This seems
obvious, but it isn't that simple. Many people, when they learn how to program
using FORTRAN, do not do so in the way they would learn a foreign language
(English, for example), that is, by studiously learning the grammar. In
fact, many learn to use FORTRAN as they had learned Japanese - by imitating
examples and through trial and error. Such learning habits will result in
inheriting dialects without the person realizing it, and it is not uncommon for
a person to write a program that can only be understood by a specific compiler
for a specific computer.
The FORTRAN compiler usually has the FORTRAN77 standard + alpha functions. This alpha
part is called the extended functions and compilers with extended functions are
referred to as the FORTRAN77 upper compatible compilers. This means the the
compiler has "higher capability" and that it can compile programs
written only using the standard language and also those written with the
standard language plus the alpha functions. However, it also means that programs
that use these alpha functions must be compiled using the "high
capability" compilers. These alpha portions is what is called the dialect.
In colloquial styles, dialects do not present problems, and are rather
convenient since they can relay nuances that cannot be expressed in standard
languages. This is because dialects work as extended functions for the standard
language, but when dialects are used in business conversations, they often
complicate matters. One would be confused as whether to go to Tokyo or not
tomorrow upon hearing "Asu Tokyo ni ikazu," as this means "Let's
not go to Tokyo tomorrow" in standard Japanese while it means "Let's
go to Tokyo tomorrow" in the dialect of Chubu region.
Similarly, FORTRAN dialects may be convenient to use on a certain computer,
but it should not be overused. However, just as one would not be aware of
one's dialect if one does not leave his native region, it is difficult to learn
correct FORTRAN grammar if one's experience is limited to a certain computer.
This is because the person would mistakenly believe that programs that can be
compiled by the FORTRAN77 compiler he normally uses follow the FORTRAN77
standard. Of course, this is clearly wrong. All compiler have dialects to some
extent, and all programs using such dialects are not programs conforming to
FORTRAN77 standards even if they can be compiled using a FORTRAN77-conformed
compiler.
Therefore, it is strongly advised that beginners who have just learned to
write programs in FORTRAN and veterans who have been doing so for more than 10
years all keep a copy of the "Iwanami FORTRAN Dictionary" o his desk,
besides other grammar books on market. This is not just a grammar book, and is
also a pleasure to read since it provides the meaning of the standards and the
historical backgrounds.
The DCL has avoided the use of "dialects" as much as possible, and
there are only a few exceptions. When the use of dialects cannot be avoided,
they are not used directly, but are defined as "DCL standard language"
and used as such in the respective programs.
For example, when the MSGDMP in SYSLIB detects an
error, it performs a system-dependent error handling (for example, output of
error trace-back information) and then calls the OSABRT subroutine
which forcefully aborts the program. Each compiler has a similar subroutine as a
dialect, and what the OSABRT is doing is simply calling the
compiler-native subroutine (the dialect). However, by writing a different
subroutine using OSABRT , which is a "DCL standard
language," only the
OSABRT needs to be adapted for use with different compilers to
transfer all programs.
This portability is the strongest feature of the DCL, and where the library
developers put most of their efforts into. To use this feature to its fullest
extent, we hope that the users will work to gain a good understanding of the
FORTRAN grammar and to avoid the use of unnecessary dialects.
The following sections will provide a brief explanation of what you should know to avoid unnecessary dialects, some facts you might find convenient, and on pitfalls in programming.