Ratfor

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ů.

Funkce

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ČOVAT

Verze 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.

Historie

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 ENDIF

V 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 .

Viz také

Poznámky

  1. ↑ 1 2 Brian W. Kernighan. RATFOR - Preprocesor pro Rational Fortran . Archivováno z originálu 20. prosince 2005.
  2. Brian W. Kernighan. softwarové nástroje . - Reading, Mass.: Addison-Wesley Pub. Co, 1976. - 338 stran s. - ISBN 0-201-03669-X , 978-0-201-03669-5. Archivováno 5. června 2020 na Wayback Machine
  3. Implementace Ratfor v C (1985) . Archivováno z originálu 3. března 2016.
  4. Ratfor77 . Získáno 11. února 2021. Archivováno z originálu dne 3. března 2016.
  5. Ratfor Git Revived (downlink) . Získáno 11. února 2021. Archivováno z originálu dne 28. ledna 2016. 
  6. gcc ztratil preprocesor ratfor . Získáno 24. července 2019. Archivováno z originálu dne 7. dubna 2022.

Odkazy