Рулевое колесо
Разработчик | Брайан Керниган |
---|---|
Впервые появился | 1976 |
Веб-сайт | sepwww.stanford.edu |
Под влиянием | |
Фортран , С |
Ratfor (сокращение от Rational Fortran ) — язык программирования , реализованный как препроцессор для Fortran 66 . Он предоставляет современные структуры управления , недоступные в Fortran 66, для замены GOTO и номеров операторов.
Функции
[ редактировать ]Ratfor предоставляет следующие виды операторов управления потоком, которые Керниган и Плаугер описывают как «бессовестно украденные из языка C , разработанного для UNIX операционной системы Д.М. Ритчи » («Программные инструменты», стр. 318):
- группировка операторов с помощью фигурных скобок
- если-иначе , пока , для , делать , повторять-пока , перерыв , следующий
- операторы «свободной формы», т. е. не ограниченные правилами формата Фортрана.
- <, >, >=, ... вместо .LT., .GT., .GE., ...
- включать
- # комментариев
Например, следующий код
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
Версия Ratfor в Software Tools написана на Ratfor, как и примеры программ, и, поскольку доступен собственный перевод на Fortran, ее можно портировать на любую систему Fortran. Имена файлов исходного кода Ratfor заканчиваются на .r или .rat.
История
[ редактировать ]Ratfor был разработан и реализован Брайаном Керниганом в Bell Telephone Laboratories в 1974 году и описан в книге «Программное обеспечение — практика и опыт » в 1975 году. Он использовался в книге «Программные инструменты» ( Керниган и Плаугер , 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:
IF (A .GT. B) THEN
MAX = A
ELSE
MAX = B
ENDIF
Первоначальный исходный код Ratfor был портирован на C в 1985 году. [1] и улучшен для создания кода Fortran 77. [2] Дерево git было создано в 2010 году, чтобы возродить ratfor.
. [3]
Хотя компилятор GNU C имел возможность напрямую скомпилировать файл Ratfor (.r) без сохранения бесполезного промежуточного кода Fortran (.f) ( gcc foo.r
), эта функциональность была утеряна в версии 4 при переходе в 2005 году с f77 на GNU Fortran . [4]
Первоначальный источник был доступен в формате . деб и . RPM- формы на своем исходном сайте, Mirror.corbina.net/mandriva/, и его архив www.dgate.org/ratfor/ исчезли с апреля 2024 года.
Ратфив
[ редактировать ]Ratfiv — это расширенная версия языка программирования Ratfor , препроцессора для Fortran, предназначенного для придания ему C -подобных возможностей. Фортран широко использовался для научного программирования, но имел очень простые примитивы потока управления («do» и « goto ») и не имел возможности « макро », что ограничивало его выразительность.
Название языка представляет собой каламбур ( Ratfor (RATional FORtran) -> «Крыса Четыре» -> «Крыса Пять» -> RatFiv ).
Ratfiv был разработан Биллом Вудом в Институте исследования рака , Филадельфия , Пенсильвания, в начале 1980-х годов и выпущен на нескольких лентах DECUS (Группа пользователей цифрового оборудования) SIG (Специальная группа по интересам). Он основан на оригинальном Ratfor Б. Кернигана и П. Дж. Плаугера , с переписанными и усовершенствованными Дэвидом Хэнсоном и его друзьями (Университет Аризоны), Джо Свентеком и Дебби Шеррер ( Национальная лаборатория Лоуренса Беркли ).
Ratfiv V2.1 распространялся на ленте DECUS RSX82a SIG. [5]