\"      @(#)m0  6.2 (Berkeley) 4/29/86
\"
OH 'RATFOR \(em A Preprocessor for a Rational Fortran''PS2:8-%'
EH 'PS2:8-%''RATFOR \(em A Preprocessor for a Rational Fortran'
....ND "January 1, 1977"
...TR 55
....TM 76-1273-10 39199 39199-11
TL
RATFOR \(em A Preprocessor for a Rational Fortran
AU "MH 2C-518" 6021
Brian W. Kernighan
AI
MH
OK
structured programming, control flow, programming
AB
ps 10
nr PS 10
vs 12
nr VS 12
in 0
ll
PP
Although Fortran is not a pleasant
language to use,
it does have the advantages of universality
and (usually) relative efficiency.
The
Ratfor
language attempts to conceal
the main deficiencies of Fortran
while retaining its desirable qualities,
by providing
decent control flow statements:
IP "\ \ \ \(bu"
statement grouping
IP "\ \ \ \(bu"
UL if-else
and
UL switch
for decision-making
IP "\ \ \ \(bu"
UL while ,
UL for ,
UL do ,
and
UL repeat-until
for looping
IP "\ \ \ \(bu"
UL break
and
UL next
for controlling loop exits
LP
and some ``syntactic sugar'':
IP "\ \ \ \(bu"
free form input (multiple statements/line, automatic continuation)
IP "\ \ \ \(bu"
unobtrusive comment convention
IP "\ \ \ \(bu"
translation of >, >=, etc., into .GT., .GE., etc.
IP "\ \ \ \(bu"
UL return (expression)
statement for functions
IP "\ \ \ \(bu"
UL define
statement for symbolic parameters
IP "\ \ \ \(bu"
UL include
statement for including source files
LP
Ratfor
is implemented as a
preprocessor which translates this language
into Fortran.
PP
Once the control flow and cosmetic deficiencies of Fortran
are hidden,
the resulting language is remarkably pleasant to use.
Ratfor
programs are
markedly easier to write, and to read,
and thus easier to debug, maintain and modify
than their Fortran equivalents.
PP
It is readily possible to write
Ratfor
programs which are portable to other environments.
Ratfor
is written in itself
in this way,
so it is also portable;
versions of
Ratfor
are now running on at least two dozen different types of computers
at over five hundred locations.
PP
This paper discusses design criteria
for a Fortran preprocessor,
the
Ratfor
language
and its implementation,
and user experience.
AE
FS
This paper is a revised and expanded version of oe published in
ul
Software\(emPractice and Experience,
October 1975.
The Ratfor described here is the one in use on
UC UNIX
and
UC GCOS
at Bell Laboratories, Murray Hill, N. J.
FE
CS 12 1 13 0 0 10
LP