Ratfor (zkratka pro anglický Rational Fortran - “Rational Fortran ”) je programovací jazyk implementovaný jako preprocesor pro Fortran 66 . Poskytuje moderní řídicí konstrukce, které nejsou dostupné ve Fortran 66, aby nahradily Goto a čísla příkazů.
Ratfor poskytuje následující druhy kontrolních konstruktů, které popsal Brian Kernighan [1] :
Například následující program
if ( a > b ) { # Hledat maximum max = a } jinak { max = b }Může být vysíláno příště
POKUD (. NE .( A . GT . B )) PŘEJÍT 1 MAX = A PŘEJÍT 2 1 POKRAČOVAT MAX = B 2 POKRAČOVATVerze Ratfor uvedená v Softwarových nástrojích je napsána v Ratfor jako příklad programu, a protože je k dispozici zdrojový kód Fortran , lze ji přenést do jakéhokoli systému Fortran . Soubory zdrojového kódu Ratfor mají příponu .r nebo .rat.
Ratfor byl navržen a implementován Brianem Kernighanem v Bell Telephone Laboratories v roce 1974 a popsán v Software—Practice & Experience v roce 1975 [1] . Bylo použito v knize "Software Tools" ( Brian Kernighan a Phillip Plauger , 1976) [2] .
V roce 1977 byla na Purdue University napsána vylepšená verze preprocesoru Ratfor. Jmenoval se Mouse4, protože byl menší a rychlejší než Ratfor. Dr. Douglas Comer, profesor na Purdue, uzavřel ve svém článku, který publikoval: „Na rozdíl od důkazů předložených vývojářem Ratfor sekvenční vyhledávání často nestačí pro výrobu softwaru. Také v případě lexikální analýzy se zdá, že dobře známé metody poskytují efektivitu při zachování jednoduchosti, snadnosti kódování a modularity ad hoc metod.“
zabral program s 3 000 řádky kódu běžící na systému 6500 185 470 sekund CPU Při použití binárního vyhledávání na Ratforu se tento čas zkrátil o 50 %. Přepsání lexikálního analyzátoru pomocí metody založené na konečných automatech zkrátilo dobu provádění na 12,723 sekund.
S kompilátorem Fortran 77 by nástupce Ratforu, Ratfiv, generovat kód s volbou /f77
IF ( A . GT . B ) TAK MAX = A JINÉ MAX = B ENDIFV roce 1985 [3] byl zdrojový kód Ratforu přepsán v C a vylepšen, aby vytvořil kód Fortran 77 [4] . V roce 2010 bylo vytvořeno úložiště git pro oživení Ratforu. [5] Mezitím kompilátor GNU C , který měl schopnost přímo zkompilovat soubor Ratfor ( ) bez ukládání zbytečného mezikódu Fortran ( ) ( ), ztratil tuto funkci ve verzi 4 během přechodu z Fortran 77 na GNU Fortran v roce 2005 . [6].r.fgcc foo.r
Pro uživatele, kteří potřebují zkompilovat starý software Ratfor na libovolném operačním systému, jsou stále k dispozici odpovídající zdrojové balíčky .deb a .rpm .