Ratfor (abreviatura de Rational Fortran ) es un lenguaje de programación implementado como preprocesador para Fortran 66 . Proporciona estructuras de control modernas , no disponibles en Fortran 66, para reemplazar GOTO y números de declaración.
Desarrollador | Brian Kernighan |
---|---|
Apareció por primera vez | 1976 |
Sitio web | sepwww.stanford.edu |
Influenciado por | |
Fortran , C |
Características
Ratfor proporciona los siguientes tipos de declaraciones de control de flujo, descritas por Kernighan y Plauger como "robadas descaradamente del lenguaje C , desarrolladas para el sistema operativo UNIX por DM Ritchie " ("Herramientas de software", p. 318):
- agrupación de declaraciones con llaves
- if-else , while , for , do , repeat-until , break , next
- Declaraciones de "forma libre", es decir, no restringidas por las reglas de formato de Fortran
- <,>,> =, ... en lugar de .LT., .GT., .GE., ...
- incluir
- # comentarios
Por ejemplo, el siguiente código
if ( a > b ) { max = a } else { max = b }
podría traducirse como
IF (. NO . ( A . GT . B )) GOTO 1 MAX = A GOTO 2 1 CONTINUAR MAX = B 2 CONTINUAR
La versión de Ratfor en Software Tools está escrita en Ratfor, al igual que los programas de muestra, y dado que su propia traducción a Fortran está disponible, se puede migrar a cualquier sistema Fortran. Ratfor los nombres de archivo de código fuente terminan en .r o .rat.
Historia
Ratfor fue diseñado e implementado por Brian Kernighan en Bell Telephone Laboratories en 1974 y descrito en Software — Practice & Experience en 1975. Se usó en el libro "Software Tools" ( Kernighan y Plauger , 1976).
En 1977, en la Universidad de Purdue , se escribió una versión mejorada del preprocesador ratfor. Se llamaba Mouse4, ya que era más pequeño y más rápido que ratfor. Un documento publicado por el Dr. Douglas Comer , profesor de Purdue, concluyó que "contrariamente a la evidencia exhibida por el diseñador de Ratfor, la búsqueda secuencial es a menudo inadecuada para el software de producción. Además, en el caso del análisis léxico, las técnicas bien conocidas parecen para ofrecer eficiencia conservando la simplicidad, la facilidad de codificación y la modularidad de los métodos ad hoc ". (CSD-TR236).
En comparación con el preprocesador ratfor en un programa de 3000 líneas fuente que se ejecuta en un sistema CDC 6500 , tomó 185.470 segundos de CPU. Eso se redujo en un 50% cuando se utilizó la búsqueda binaria en el código ratfor. La reescritura del escáner léxico ad hoc utilizando un método estándar basado en autómatas finitos redujo el tiempo de ejecución a 12,723 segundos.
Con la disponibilidad de Fortran 77 , un sucesor llamado ratfiv (ratfor = rat4 => rat5 = ratfiv) podría, con una opción / f77, generar un código Fortran 77 más legible:
IF ( A . GT . B ) ENTONCES MAX = A ELSE MAX = B ENDIF
El código fuente inicial de Ratfor fue portado a C en 1985 [1] y mejorado para producir código Fortran 77 también. [2] Se estableció un árbol git en 2010 para revivir ratfor. [3] Aunque el compilador GNU C tenía la capacidad de compilar directamente un archivo Ratfor (.r) sin mantener un código Fortran intermedio inútil (.f) ( gcc foo.r
), esta funcionalidad se perdió en la versión 4 durante el cambio en 2005 de f77 a GNU Fortran . [4]
Paquetes fuente,. Los paquetes deb o src.rpm [5] [6] todavía están disponibles para los usuarios que necesitan compilar software antiguo de Ratfor en cualquier sistema operativo.
Ver también
Referencias
- ^ "Ratfor implementación en C (1985)" .
- ^ "Ratfor77" .
- ^ "Ratfor Git revivido" .
- ^ "gcc perdió el preprocesador ratfor" .
- ^ "ratfor-1.01-1.src.rpm" .
- ^ "Otro código fuente de Ratfor" . Archivado desde el original el 3 de julio de 2013.paquete rpm fuente ratfiv o ratfiv
enlaces externos
- Ratfor
- Ratfor90
- Historia de los lenguajes de programación: Ratfor
- Resumen de Purdue