[comp.lang.fortran] Uses for ratfor?

dillon@uhccux.uhcc.hawaii.edu (Ian Dillon) (08/25/89)

I'm curious as to what the applications for ratfor would be.  If you are
a frequent user of this processor, would you mind e-mailing a response
to the address below.  Also, the "man" page describing ratfor looks like:


	NAME
     		ratfor - rational Fortran dialect

	DESCRIPTION
     		Ratfor converts a rational dialect of Fortran into ordinary
     		irrational Fortran.  Ratfor provides control flow constructs
     		essentially identical to those in C:

What's the difference between rational and irrational Fortran?  Finally, 
are there any organizations which actively recruit Ratfor programmers?

Thanks in advance!

	Ian 

dillon@uhccux.uhcc.hawaii.edu (Ian Dillon) (08/26/89)

Oooops, I forgot to throw in my address:


 *  I really need to know          | Ian Dillon                            * 
 *      I learned in kindergarden  |                                       * 
 *                                 | BITNET: dillon@uhccux.bitnet          * 
 *         > R. Fulgham <          | I-NET: dillon@uhccux.UHCC.HAWAII.EDU  *                                  

bam@bnlux0.bnl.gov (Bruce Martin) (08/26/89)

		----  In response to inquiry about "Ratfor",
		----  "irrational Fortran", current job market, etc.

Ratfor was a language that was a superset of Fortran-66, with some good
stuff like if/then/else (but spelled rather differently from what later
emerged as Fortran-77).  After writing code in Ratfor, one would then
use a Ratfor pre-processor to generate standard-conforming Fortran-66
code to be compiled.

In ancient times, some people thought it useful to do this.  

[Among the drawbacks were the fact that the Ratfor syntax was often
ugly, the Ratfor code was not portable unless the receiving site also
had a Ratfor preprocessor, and the generated code was unmaintainable.
The Ratfor code was not very readable by Fortran programmers, and the
generated Fortran-66 code was an unmaintainable bowl of spagghetti.
However, during execution, run-time errors (or debugger breakpoints and
tracebacks) were of course referenced to the machine-generated
Fortran-66 code, with no traceback to the human-written Ratfor code;
this feature often provided provided great fun and enjoyment for
otherwise idle hands and brains.  Nevertheless, Ratfor enjoyed some
popularity back in the days when the "Fortran" language was defined by
X3.9-1966.]

The words "rational" and "irrational" are mere rhetoric, presumably
criticizing John Backus, et al for their incompetence in not predicting
the Bohm & Jacopini proof (which occurred only 12 years later).  There
are no such languages as "rational Fortran" and "irrational Fortran",
and the market for programmers in any Fortran-66 based dialect is quite
slim, nowadays.

I have no explanation for the existence of this pre-processor on
current systems, except to handle old Ratfor sources.  I can think of
no reason to write new programs in the Ratfor dialect, given that the
Fortran compiler on your system undoubtably accepts Fortran-77 (or
maybe Fortran-88).

An insidious but (presumably) rare problem with old Ratfor programs is
that a Fortran-66 compiler may not be available and the preprocessor-
generated code might not have exactly the same semantics in Fortran-77.  
(N.B. There were more than two dozen instances of upward-incompatability 
between Fortran-66 and Fortran-77.  Incidentally, there are none between 
Fortran-77 and Fortran-88, in the draft proposed standards now under 
public review.)


	    -/s/-					BAM
	Bruce A. Martin	
	Grumman Aircraft Systems 	[Address provided identification only.]
	(Mailstop B02-106)		[Every conceivable disclaimer applies.]
	Bethpage, NY  11714		[Opinions are mine only -- & I reserve]
	 (516) 577-1426			[the right to change my mind at will!!]