Русский | English   поискrss RSS-лента

Главная  → История развития программного обеспечения  → 

Система программирования Фортран 77 для ЕС ЭВМ и перспективы ее развития

Ни один язык программирования не имеет такой долгой жизни, как Фортран. 30 лет назад он появился как инструмент для решения задач инженеров и научных работников, и до сих пор эта категория пользователей ему не изменяет. С годами Фортран проник и в другие области, например в обработку текстов, работу с файлами. Живучесть этого языка объясняется тем, что он полностью удовлетворяет тех пользователей, для которых он предназначен, а также его относительной простотой и высокой эффективностью создаваемых трансляторами программ. За свою длительную историю развития язык Фортран дважды подвергался стандартизации. Первый стандарт имеет обозначение ИСО 1539– 1966, его теперь называют Фортран 66, второй – ИСО 1539–1980, или Фортран 77 [1].

В Фортране 77 по сравнению с Фортраном 66 существенно увеличены возможности структурирования программы, введены средства обработки текста, расширены свойства ряда операторов (в частности, операторов ввода-вывода, оператора цикла), введены другие усовершенствования.

Фортран ЕС ЭВМ. В системе программных средств ЕС ЭВМ имеются трансляторы, базирующиеся как на Фортране 66, так и на Фортране 77.

На основе Фортрана 66 разработаны трансляторы Фортран ST, SE, CC, OP, OE [2]. В этих трансляторах реализована расширенная версия языка Фортран 66. Часть расширений содержит элементы Фортрана 77, часть – учитывает архитектуру ЕС ЭВМ. Наличие такого количества трансляторов с Фортрана 66 объясняется их этапным развитием. Трансляторы Фортран ST и ОР составляли неотъемлемую часть операционной системы ОС 6.1. Трансляторы Фортран CC, SE и ОЕ являются их дальнейшим развитием в части диалоговых и отладочных средств, заменяют их и представляют собой самостоятельный программный продукт по отношению к операционным системам ЕС ЭВМ (ОС 6.1 и ОС 7.1).

Переход от Фортрана 66 к Фортрану 77 в ЕС ЭВМ. На основе языка Фортран 77 создана соответствующая система программирования [3]. В ней стандарт языка Фортран 77 реализован в полном объеме, причем возможности стандарта усилены полезными свойствами, более полно учитывающими особенности предыдущих версий Фортрана в ЕС ЭВМ. К существенным расширениям Фортрана 77 для ЕС ЭВМ относятся:

Для пользователей ЕС ЭВМ, которые после применения Фортрана 66 переходят к Фортрану 77, новые свойства Фортрана 77 условно можно разделить на две группы.

К первой группе относятся возможности, расширяющие язык:

Вторую группу составляют новые свойства, расширяющие возможности имеющихся операторов и обеспечивающие:

Тем не менее между версиями Фортрана 66 и Фортрана 77, реализованными в ЕС ЭВМ, как и в соответствующих стандартах, имеются противоречия. Некоторые противоречия характерны только для Фортрана ЕС ЭВМ и заключаются в различии формы записи операторов ввода-вывода прямого доступа. Другие несовместимости определены требованиями стандарта Фортрана 77. Например, в Фортране 77 в отличие от Фортрана 66 тело цикла может не выполняться, список вывода не должен заключаться в скобки, цикл не должен иметь расширенную область.

Несмотря на указанные противоречия, система программирования Фортран 77 поддерживает совместимость с предыдущими версиями Фортрана ЕС ЭВМ. Концепция совместимости обеспечивается по двум направлениям. Во-первых, введен специальный режим трансляции, по которому выполняется обработка программ на Фортране 66. Во-вторых, объектные модули, полученные трансляторами предыдущих версий Фортрана, допускается объединить при редактировании с объектными модулями, полученными транслятором системы программирования Фортран 77, в один загрузочный модуль. Такой подход дает возможность пользователям принять без переделок исходные и объектные модули, созданные на Фортране 66, в системе программирования Фортран 77.

Кроме того, система программирования (СП) Фортран 77 обеспечивает совместимость с транслятором FORTRAN VS снизу вверх на уровне исходных и объектных модулей. Это означает, что модули, подготовленные для обработки СП Фортран 77, могут без изменений быть обработаны транслятором FORTRAN VS, а объектные модули, полученные транслятором Фортран 77, можно соединять при редактировании с объектными модулями, полученными транслятором FORTRAN VS, в один объектный модуль.

Характеристика системы программирования Фортран 77. Эта система выдержала два издания: первое содержало транслятор и библиотеки для работы в пакетном режиме, второе представляет собой совокупность программных компонентов. Они обеспечивают трансляцию и отладку исходных программ на Фортране 77 как в пакетном, так и диалоговом режиме (ПДО СВМ и СРВ ОС 6 и ОС 7). Особенно развитыми являются средства отладки в диалоговом режиме, которые обеспечиваются диалоговым отладчиком.

Транслятор функционирует в пакетном и диалоговом режимах, вызов транслятора в диалоговом режиме производится с помощью команд, которые являются посредниками ПДО и СРВ. Транслятор осуществляет ввод исходной программы и ее преобразование в объектную программу. Транслятор написан на языке системного программирования и состоит из 4 фаз: анализа, распределения памяти, генерации объектного кода и вывода. Анализ базируется на методе рекурсивного спуска и объединяет в себе лексический и синтаксический контроль исходной программы. Анализ программы сопровождается построением промежуточного текста в форме обратной польской записи. Проверка контекстных условий выполняется на фазах анализа и распределения памяти. При генерации объектного кода учитываются условия, допускающие локальную оптимизацию объектного кода. Режимы трансляции позволяют управлять выводом результатов трансляции. Результатами вывода могут быть объектная программа, распечатки исходной и объектной программы, таблица распределения памяти элементов исходной программы, таблица перекрестных ссылок, сообщения об ошибках в программе. Информация об ошибке достаточно полно характеризует суть нарушений правил языка, допущенных пользователем.

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

Подключение программ библиотеки к объектным программам производится на этапе редактирования средствами операционной системы.

Диалоговый отладчик позволяет выполнять отладку программ на уровне и в терминах входного языка. Для задания отладочных действий используется язык отладки в виде подкоманд специальной команды ПДО или СРВ. Широкий набор подкоманд дает возможность задавать разнообразные действия, позволяющие осуществлять динамический контроль за выполнением рабочей программы на уровне объектов исходной программы. В зависимости от получаемых результатов пользователь может изменять последовательность выполнения операторов исходной программы, распечатывать и модифицировать данные, а также запрашивать выполнение различных сервисных функций, упрощающих проведение отладки. Отладочные действия задаются в определенных абонентом точках прерывания и распространяются на такие объекты исходной программы, как переменные, массивы и операторы. Для указания некоторых отладочных действий могут использоваться арифметические, логические и текстовые выражения. Программы, предназначенные для диалоговой отладки, должны быть протранслированы с указанием специального режима, при котором в объектном модуле для каждого оператора устанавливается связь с диалоговым отладчиком, а также строятся дополнительные таблицы (таблица символических имен и таблица операторов), позволяющие в процессе отладки программы обращаться к переменным и массивам по их именам, а к операторам – по их меткам или номерам строк.

Развитие системы программирования Фортран 77 продолжается. Система будет наращиваться компонентами, которые предоставят пользователям возможность получать высокоэффективные оптимизированные программы, а также реентерабельные программы для экономии памяти. Для этой цели в трансляторе предусматриваются 3 уровня оптимизации. Первый уровень обеспечивает наилучшее использование ограниченного количества регистров и более быстрых команд перехода. Второй и третий уровни оптимизации, кроме возможностей первого уровня, включают оптимизацию текста программы. Причем в отличие от третьего уровня на втором уровне оптимизации исключаются те перемещения текста программы, которые могут привести к сбойным ситуациям. Для получения рабочих реентерабельных программ обеспечивается соответствующая поддержка в трансляторе, библиотеке и включается в систему дополнительный компонент – программа разделения. Расширяются возможности ввода-вывода на уровне языка для использования средств виртуального метода доступа, который обеспечивает высокую эффективность обработки данных. Все последующие издания СП Фортран 77 будут также обеспечивать полную совместимость с транслятором FORTRAN VS на уровне исходных и объектных модулей.

Планируется, чтобы система Фортран 77 стала единственной и универсальной системой для пользователей Фортрана в базовых, программных средствах ЕС ЭВМ.

Литература

  1. Колдербэнк В. Дж. Программирование на Фортране. Фортран 66 и Фортран 77 : Пер. с англ. – М.: Радио и связь, 1986. – 176 с.
  2. Брич 3. С. и др. Фортран ЕС ЭВМ // 3. С. Брич, Д. В. Капилевич, С. Ю. Котик, В. И. Цагельский. – 2-е изд. – М.: Финансы и статистика, 1985. – 264 с.
  3. Брич 3. С. и др. Основные принципы системы программирования Фортран 77 ЕС ЭВМ // Вопросы радиоэлектроники. – Сер. ЭВТ. – Вып. 15. – 1984. – с. 12–14.

Статья опубликована в сборнике "Вычислительная техника социалистических стран", вып. 24, Москва, "Финансы и статистика", 1988 г., стр. 134.

Проект Эдуарда Пройдакова
© Совет Виртуального компьютерного музея, 1997 — 2017