ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Bookmark

Next issue

4
Publication date:
16 December 2019
-->

The article was published in issue no. № 4, 1989
Abstract:
Аннотация:
Authors: () - , () -
Ключевое слово:
Page views: 6307
Print version

Font size:       Font:

Для программиста, привыкшего к Паскалю, Си или Ада, ФОРТРАН кажется архаичным и безнадежно устаревшим. Тем не менее он жив и, судя по всему, не собирается умирать, вынуждая все новых и новых разработчиков вычислительной техники обеспечивать наличие на своих установках ФОРТРАН-систем.

Известно множество разработок, преследующих цель сделать ФОРТРАН более современным. Почти все разработчики ФОРТРАН-трансляторов включают в них те или иные расширения, однако сложность унификации таких расширений существенно тормозит развитие языка. Препроцессорная обработка является менее радикальным, но достаточно гибким способом быстрого развития языка без потери совместимости с другими системами.

Обычно под препроцессорной обработкой программ понимают предварительный просмотр и преобразование их исходного текста в текст на базовом языке, обрабатываемый затем штатным транслятором. Сложность препроцессорной обработки может варьироваться, но обычно она значительно проще собственно трансляции.

Препроцессор структурного ФОРТРАНа (SFOR-препроцессор) обеспечивает расширение базового языка конструкциями управления, принятыми в технологии структурного программирования.

Первоначальная версия препроцессора, разработанная в 1980—1981 гг., реализовывала язык SFOR. Впоследствии препроцессор был существенно переработан и в настоящее время поддерживает значительно более развитый язык, а также обеспечивает ряд дополнительных технологических возможностей.

Язык SFOR имеет структуру, аналогичную структуре базового диалекта ФОРТРАНа, используемого совместно с препроцессором, и отличается расширением набора операторов управления, возможностью использования локальных процедур, дополнительных средств отладки и элементов макрогенерации.

Основными конструкциями расширенного языка являются:

•    "оператор логического выбора (0 IF; О THEN; Q ELSE; Q ENDI);

•    оператор общего выбора (Q SELECT — Q WHEN — ... — Q WHEN — Q OTHER — Q ENDS);

•    оператор арифметического выбора (Q BRANCH — Q CASE — ... — П CASE — Q ELCASE — P ENDB);

•    оператор повторения с предусловием (Q WHILE — Q DO — Й ENDW);

•    оператор повторения с постусловием (Q REPEAT — Q UNTIL);

•    оператор повторения арифметический (Q CYCLE — Q ENDC).

Очевидна связь перечисленных конструкций с операторами ФОРТРАНа (IF, GOTO, DO и т. д.). Наличие у каждого структурного оператора собственного замыкающего компонента (в стиле языка ALGOL-68) позволяет при обработке достаточно точно диагностировать ошибки в программе на SFOR'e.

Локальные процедуры без параметров описываются с помощью операторов Q PROC-Q ENDP и вызываются с помощью операторов Q CALL.

Оператор Q EXIT позволяет выходить из процедуры ранее, чем будет достигнут ее конец, а оператор О EXITIF — при удовлетворении указанного условия.

Структурные операторы могут быть вложенными (как это принято в большинстве современных языков).

SFOR-препроцессор, подобно ряду реализаций ФОРТРАН-трансляторов, обеспечивает возможность использования операторов периода отладки, оформленных в виде комментариев. В отладочном режиме препроцессор проверяет вторые позиции строк-комментариев, и если в них находится один из множества символов, указанных при запуске препроцессора, то соответствующий оператор активизируется, т. е. не считается комментарием.

Большие технологические удобства при работе со SFOR-препроцессором обеспечиваются наличием в нем встроенного макропроцессора. При разработке макропроцессора не ставилась цель реализации всего комплекса возможностей, принятого в системах общего назначения; основной упор делается на компактность, быстроту работы и реальные потребности пользователей системы.

Макропроцессор обеспечивает как простую вставку кусков текста (сегментов) из указанных файлов или разделов библиотек, так и поиск и подстановку макропеременных, выделяемых в тексте специальными маркерами начала и конца; возможны вложенные макровызовы.

Одной из основных целей, поставленных при разработке SFOR-препроцессора, является обеспечение его мобильности. Многолетний опыт его эксплуатации показывает, что эта цель была достигнута. В настоящее время имеются реализации на ЕС ЭВМ (DOC, ОС, СВМ), СМ ЭВМ (ОС РВ, РАФОС), VAX (VAX VMS), IBM PC (MS DOS).

Мобильность обеспечивается практически полной реализацией препроцессора на SFOR'e (методом раскрутки с ФОРТРАНа) и использованием в реализации строго ограниченного подмножества языка ФОРТРАН. Время переноса в новую среду зависит в основном от сложности реализации динамического доступа к файлам и обычно составляет от одного до нескольких дней.


Permanent link:
http://www.swsys.ru/index.php?page=article&id=1387&lang=en
Print version
The article was published in issue no. № 4, 1989

Perhaps, you might be interested in the following articles of similar topics: