Ratfor
# Ratfor

Ratfor (abbreviazione di Rational Fortran) è un linguaggio di programmazione implementato come preprocessore di Fortran 66. Supportava la programmazione strutturata, non disponibile in Fortran 66, per sostituire i salti generati dai GOTO e la dichiarazione numerica. Le estensioni più comuni di RatFor sono .r e .rat

## Caratteristiche

Ratfor fornisce i seguenti tipi di dichiarazione di flusso di controllo, descritti da Kernighan e Plauger i quali definiscono RatFor come "spudoratamente rubato dal linguaggio C, sviluppato per il sistema operativo UNIX di D.M. Ritchie", ("Software Tools", p. 318):

* sostegno di dichiarazione di raggruppamento
* if-else, while, for, do, repeat-until, break, next
* controlli "free-form", vale a dire non vincolati dalle regole di Fortran
* <, >, >=, al posto di .LT., .GT. e .GE.
* include
* # per i commenti

Un esempio è il seguente codice

che in Fortran sarebbe tradotto come

La versione di Ratfor in Software Tools, poiché scritta in questo linguaggio, può essere usata su qualsiasi piattaforma Fortran.

## Storia

Ratfor è stato realizzato e progettato da Brian Kernighan ai Bell Telephone Laboratories nel 1974, e descritto in Software-Practice & Experience (1975) e nel libro "Software Tools" (Kernighan e Plauger, nel 1976).

Nel 1977, alla Purdue University, fu scritta in Ratfor una versione più rapida del processore. Venne chiamato Mouse4, dato che era più piccolo ma più veloce di Ratfor. Un documento pubblicato dal Dr. Douglas Comer, professore alla Purdue, ha concluso "in contrasto con le prove esposte dal progettista di RatFor, la ricerca sequenziale è spesso inadeguata per il software di produzione. Inoltre, nel caso di analisi lessicale, tecniche ben note sembrano offrire efficienza pur mantenendo la semplicità, la facilità di codifica e la modularità dei metodi ad-hoc." (CSD-TR236).

Questo processore, rispetto ad un programma di 3000 righe scritto in Ratfor ed eseguito su un sistema CDC 6500, prende 185.470 secondi di CPU. Lo spreco è stato tagliato del 50% quando la ricerca binaria venne applicata ai codici Ratfor. Riscrivendo lo scanner lessicale ad-hoc e usando metodi standard basati su un'autonomia finita, venne infine ridotto il tempo di esecuzione a 12.723 secondi.

Fortran 77, un successore di Ratfor denominato Ratfiv, grazie all' opzione /f77 permette l'uscita di un codice più facile da leggere:

Inizialmente il codice sorgente di Ratfor venne portato in C nel 1985 e migliorato per produrre un codice Fortran 77. Un albero genealogico di Git venne rilasciato nel 2010 per rilanciare Ratfor. Intanto il compilatore GNU C, che riusciva a compilare direttamente un file Ratfor (.r) senza dover mantenere un inutile codice intermedio (gcc foo.r), perse questa funzionalità nella versione 4, durante il passaggio da Fortran77 a GNU Fortran del 2005.

Alcuni pacchetti sorgente, come .deb ma anche i pacchetti SRC.RPM, sono ancora disponibili per gli utenti che hanno bisogno di compilare un vecchio software Ratfor su qualsiasi sistema operativo.

