Ratfor (сокращение от Rational Fortran ) - это язык программирования, реализованный как препроцессор для Fortran 66 . Он предоставляет современные управляющие структуры , недоступные в Fortran 66, для замены GOTO и номеров операторов.
Разработчик | Брайан Керниган |
---|---|
Впервые появился | 1976 г. |
Веб-сайт | sepwww.stanford.edu |
Под влиянием | |
Фортран , C |
Функции
Ratfor предоставляет следующие виды операторов управления потоком, которые Керниган и Плаугер описали как «беззастенчиво украденные из языка C , разработанного для операционной системы UNIX DM Ritchie » («Программные средства», стр. 318):
- группировка операторов с помощью фигурных скобок
- if-else , while , for , do , repeat-until , break , next
- операторы "свободной формы", т. е. не ограниченные правилами формата Fortran
- <,>,> =, ... вместо .LT., .GT., .GE., ...
- включать
- # Комментарии
Например, следующий код
if ( a > b ) { max = a } else { max = b }
можно перевести как
ЕСЛИ (. НЕ . ( . GT . Б )) GOTO 1 МАКС = GOTO 2 1 ПРОДОЛЖИТЬ MAX = B 2 ПРОДОЛЖИТЬ
Версия Ratfor в Software Tools написана на Ratfor, как и примеры программ, и, поскольку доступен ее собственный перевод на Fortran, ее можно портировать на любую систему Fortran. Имена файлов исходного кода Ratfor заканчиваются на .r или .rat.
История
Ratfor был разработан и реализован Брайаном Керниганом в Bell Telephone Laboratories в 1974 году и описан в книге «Программное обеспечение - практика и опыт» в 1975 году. Он использовался в книге «Программные инструменты» ( Kernighan and Plauger , 1976).
В 1977 году в Университете Пердью была написана улучшенная версия препроцессора ratfor. Он назывался Mouse4, так как был меньше и быстрее ratfor. В опубликованном документе д-ра Дугласа Комера , профессора Purdue, делается вывод: «вопреки свидетельствам, представленным разработчиком Ratfor, последовательный поиск часто не подходит для производственного программного обеспечения. Более того, в случае лексического анализа хорошо известные методы кажутся чтобы предложить эффективность при сохранении простоты, легкости кодирования и модульности специальных методов ". (CSD-TR236).
По сравнению с препроцессором ratfor на программе из 3000 строк исходного кода, работающей в системе CDC 6500 , потребовалось 185,470 секунд ЦП. Это было сокращено на 50%, когда в коде ratfor использовался двоичный поиск. Переписав специальный лексический сканер с использованием стандартного метода, основанного на конечных автоматах, время выполнения сократилось до 12,723 секунды.
С появлением Fortran 77 преемник с именем ratfiv (ratfor = rat4 => rat5 = ratfiv) мог с параметром / f77 выводить более читаемый код Fortran 77:
ЕСЛИ ( . GT . Б ) ТОГДА MAX = ИНАЧЕ MAX = B ENDIF
Первоначальный исходный код Ratfor был перенесен на C в 1985 году [1] и улучшен для создания кода Fortran 77. [2] В 2010 году было создано дерево git , чтобы возродить ratfor. [3] Хотя компилятор GNU C имел возможность напрямую компилировать файл Ratfor (.r) без сохранения бесполезного промежуточного кода Fortran (.f) ( gcc foo.r
), эта функциональность была потеряна в версии 4 во время перехода в 2005 году с f77 на GNU Fortran . [4]
Пакеты с исходным кодом,. deb или src.rpm package [5] [6] по-прежнему доступны для пользователей, которым необходимо скомпилировать старое программное обеспечение Ratfor в любой операционной системе.
Смотрите также
Рекомендации
- ^ "Реализация Ratfor в C (1985)" .
- ^ «Ратфор77» .
- ^ «Рэтфор Гит возродился» .
- ^ "gcc потерял препроцессор ratfor" .
- ^ "ratfor-1.01-1.src.rpm" .
- ^ «Еще один исходный код Ratfor» . Архивировано из оригинала на 2013-07-03. CS1 maint: обескураженный параметр ( ссылка )rpm-пакет с исходным кодом ratfiv или ratfiv
Внешние ссылки
- Ratfor
- Ratfor90
- История языков программирования: Ratfor
- Резюме Purdue