Interested Article - Ратфор
![](/images/007/295/7295517/1.jpg?rand=868921)
![](https://cdn.wafarin.com/avatars/ac575e3eecf0fa410518c2d3a2e7209f.png)
- 2021-11-18
- 1
Ратфор (сокращение от англ. Rational Fortran — «Рациональный Фортран ») — язык программирования , реализованный в качестве препроцессора для Fortran 66 . Он предоставляет современные управляющие конструкции, недоступные в Fortran 66, с целью замены Goto и номеров операторов.
Возможности
Ратфор предоставляет следующие виды управляющих конструкций, описанные Брайаном Кёрниганом :
- Группировка операторов с помощью фигурных скобок;
- Управляющие операторы: if-else, switch, while, for, do, repeat-until, break, next;
- Свободный формат написания кода, то есть не ограниченный правилами формата Фортран , как несколько операторов в строке, так и оператор на нескольких строках;
- Операторы сравнения <, >, >=, … в дополнение .LT., .GT., .GE., …;
- Оператор return(выражение) для функций;
- Директивы препроцессора: define, include;
- Символ # комментария может находиться в любой позиции строки.
Например, следующая программа
if (a > b) { # Поиск максимума
max = a
}
else {
max = b
}
Может быть транслирована в следующую
IF(.NOT.(A.GT.B))GOTO 1
MAX = A
GOTO 2
1 CONTINUE
MAX = B
2 CONTINUE
Версия Ратфор приведённая в книге «Software Tools» написана на языке Ратфор, в качестве примера программы, и поскольку доступен её исходный код на Фортран , она может быть портирована на любую Фортран систему. Файлы исходного кода на языке Ратфор имеют расширение .r или .rat.
История
Ратфор был разработан и реализован Брайаном Керниганом в Bell Telephone Laboratories в 1974 году и описан в книге «Software—Practice & Experience» в 1975 году . Он был использован в книге «Software Tools» ( Брайан Кёрниган и , 1976) .
В 1977 году в Университете Пердью была написана улучшенная версия препроцессора Ратфор. Она называлась Mouse4, так как была компактнее и быстрее, чем Ратфор. Доктор Дуглас Комер, профессор из Пердью, в опубликованном им документе заключил: «Вопреки доказательствам, представленным разработчиком Ратфор, последовательный поиск часто недостаточен для производства программного обеспечения. Кроме того, в случае лексического анализа хорошо известные методы, по-видимому, обеспечивают эффективность, сохраняя при этом простоту, легкость кодирования и модульность специальных методов.»
По сравнению с препроцессором Ратфор для программы из 3000 строк кода, работающих в системе , потребовалось 185,470 секунд процессора. При использовании двоичного поиска на Ратфоре это время сократилось на 50%. Переписывание лексического анализатора с использованием метода, основанного на конечных автоматах , сократило время выполнения до 12,723 секунд.
При наличии компилятора Фортран 77 приемник Ратфора, при использовании опции /f77 мог генерировать более читаемый код:
IF (A .GT. B) THEN
MAX = A
ELSE
MAX = B
ENDIF
В 1985
году исходный код Ратфор был переписан на C и улучшен для получения кода
Fortran 77
. В 2010 году был создан
git
репозиторий
, с целью возрождения Ратфора.
Между тем, компилятор
GNU C
, который имел возможность напрямую компилировать файл Ратфор (
.r
) без сохранения бесполезного промежуточного кода на языке
Фортран
(
.f
) (
gcc foo.r
) потерял эту функциональность в версии 4 во время перехода в 2005 году из
Фортран 77
в
GNU Fortran
.
Для пользователей, которым необходимо скомпилировать старое программное обеспечение на Ратфор в любой операционной системе, по-прежнему доступны соответствующие .deb и .rpm пакеты с исходным кодом.
См. также
Примечания
- ↑ Brian W. Kernighan. . 20 декабря 2005 года.
- Brian W. Kernighan. . — Reading, Mass.: Addison-Wesley Pub. Co, 1976. — 338 pages с. — ISBN 0-201-03669-X , 978-0-201-03669-5. 5 июня 2020 года.
- . 3 марта 2016 года.
- . Дата обращения: 11 февраля 2021. 3 марта 2016 года.
- . Дата обращения: 11 февраля 2021. Архивировано из 28 января 2016 года.
- . Дата обращения: 24 июля 2019. 7 апреля 2022 года.
Ссылки
![](https://cdn.wafarin.com/avatars/ac575e3eecf0fa410518c2d3a2e7209f.png)
- 2021-11-18
- 1