HOME

TheInfoList



OR:

Ratfor (short for ''Rational Fortran'') is a
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
implemented as a
preprocessor In computer science, a preprocessor (or precompiler) is a Computer program, program that processes its input data to produce output that is used as input in another program. The output is said to be a preprocessed form of the input data, which i ...
for Fortran 66. It provides modern control structures, unavailable in Fortran 66, to replace GOTOs and statement numbers.


Features

Ratfor provides the following kinds of flow-control statements, described by Kernighan and Plauger as "shamelessly stolen from the language C, developed for the
UNIX Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
operating system by D.M. Ritchie" ("Software Tools", p. 318): * statement grouping with braces * if-else, while, for, do, repeat-until, break, next * "free-form" statements, i.e., not constrained by Fortran format rules * <, >, >=, ... in place of .LT., .GT., .GE., ... * include * # comments For example, the following code if (a > b) else might be translated as IF(.NOT.(A.GT.B))GOTO 1 MAX = A GOTO 2 1 CONTINUE MAX = B 2 CONTINUE The version of Ratfor in ''Software Tools'' is written in Ratfor, as are the sample programs, and inasmuch as its own translation to Fortran is available, it can be ported to any Fortran system. Ratfor source code file names end in .r or .rat.


History

Ratfor was designed and implemented by
Brian Kernighan Brian Wilson Kernighan (; born January 30, 1942) is a Canadian computer scientist. He worked at Bell Labs and contributed to the development of Unix alongside Unix creators Ken Thompson and Dennis Ritchie. Kernighan's name became widely known ...
at
Bell Telephone Laboratories Nokia Bell Labs, commonly referred to as ''Bell Labs'', is an American industrial research and development company owned by Finnish technology company Nokia. With headquarters located in Murray Hill, New Jersey, Murray Hill, New Jersey, the compa ...
in 1974, and described in ''Software—Practice & Experience'' in 1975. It was used in the book "Software Tools" ( Kernighan and Plauger, 1976). In 1977, at
Purdue University Purdue University is a Public university#United States, public Land-grant university, land-grant research university in West Lafayette, Indiana, United States, and the flagship campus of the Purdue University system. The university was founded ...
, an improved version of the Ratfor preprocessor was written. It was called Mouse4, as it was smaller and faster than Ratfor. A published document by Dr. Douglas Comer, professor at Purdue, concluded "contrary to the evidence exhibited by the designer of Ratfor, sequential search is often inadequate for production software. Furthermore, in the case of lexical analysis, well-known techniques do seem to offer efficiency while retaining the simplicity, ease of coding and modularity of ad hoc methods." (CSD-TR236). In comparison to the Ratfor preprocessor on a program of 3000 source lines running on a CDC 6500 system took 185.470 CPU seconds. That was cut by 50% when binary search was used in the Ratfor code. Rewriting the ad hoc lexical scanner using a standard method based on finite automata reduced run time to 12.723 seconds. With the availability of Fortran 77, a successor named
Ratfiv Ratfor (short for ''Rational Fortran'') is a programming language implemented as a preprocessor for Fortran#FORTRAN 66, Fortran 66. It provides Structured programming, modern control structures, unavailable in Fortran 66, to replace GOTOs and sta ...
(Ratfor=rat4 => rat5=Ratfiv) could, with an option /f77, output a more readable Fortran 77 code: IF (A .GT. B) THEN MAX = A ELSE MAX = B ENDIF Initial Ratfor source code was ported to C in 1985 and improved to produce Fortran 77 code too. A
git Git () is a distributed version control system that tracks versions of files. It is often used to control source code by programmers who are developing software collaboratively. Design goals of Git include speed, data integrity, and suppor ...
tree has been set in 2010 in order to revive ratfor . Although the
GNU C compiler The GNU Compiler Collection (GCC) is a collection of compilers from the GNU Project that support various programming languages, hardware architectures, and operating systems. The Free Software Foundation (FSF) distributes GCC as free software ...
had the ability to directly compile a Ratfor file (.r) without keeping a useless intermediate Fortran code (.f) (gcc foo.r), this functionality was lost in version 4 during the move in 2005 from f77 to GNU Fortran. The original source was available in . deb and .
rpm Revolutions per minute (abbreviated rpm, RPM, rev/min, r/min, or r⋅min−1) is a unit of rotational speed (or rotational frequency) for rotating machines. One revolution per minute is equivalent to hertz. Standards ISO 80000-3:2019 def ...
forms at its original site, mirror.corbina.net/mandriva/, and its archive, www.dgate.org/ratfor/ are gone as of April, 2024.


Ratfiv

Ratfiv is an enhanced version of the Ratfor programming language, a
preprocessor In computer science, a preprocessor (or precompiler) is a Computer program, program that processes its input data to produce output that is used as input in another program. The output is said to be a preprocessed form of the input data, which i ...
for Fortran designed to give it C-like capabilities. Fortran was widely used for scientific programming but had very basic control-flow primitives ("do" and " goto") and no " macro" facility which limited its expressiveness. The name of the language is a pun (''Ratfor'' (RATional FORtran) -> "Rat Four" -> "Rat Five" -> ''RatFiv''). Ratfiv was developed by Bill Wood at the Institute for Cancer Research,
Philadelphia Philadelphia ( ), colloquially referred to as Philly, is the List of municipalities in Pennsylvania, most populous city in the U.S. state of Pennsylvania and the List of United States cities by population, sixth-most populous city in the Unit ...
, PA in the early 1980s and released on several
DECUS The Digital Equipment Computer Users' Society (DECUS) was an independent computer user group related to Digital Equipment Corporation (DEC). The Connect User Group Community, formed from the consolidation in May, 2008 of DECUS, Encompass, HP- ...
(Digital Equipment Users Group) SIG (Special Interest Group) tapes. It is based on the original Ratfor by B. Kernighan and P. J. Plauger, with rewrites and enhancements by David Hanson and friends (U. of Arizona), Joe Sventek and Debbie Scherrer (
Lawrence Berkeley National Laboratory Lawrence Berkeley National Laboratory (LBNL, Berkeley Lab) is a Federally funded research and development centers, federally funded research and development center in the Berkeley Hills, hills of Berkeley, California, United States. Established i ...
). Ratfiv V2.1 was distributed on the DECUS RSX82a SIG tape.Ratfiv V2.1 archive
/ref>


See also

* Fortran * EFL


References

{{reflist, 30em


External links


Ratfor

Ratfor90

History of Programming Languages: Ratfor

Purdue summary

Ratfor90
Fortran programming language family Programming languages created in 1976