ГОСУДАРСТВЕННЫЕ СТАНДАРТЫ
СОЮЗА ССР
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
ФОРТРАН
И БАЗИСНЫЙ фортран
ГОСТ 23056—78, ГОСТ 23057—78
Издание официальное
ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР ПО СТАНДАРТАМ
Москв
аГОСУДАРСТВЕННЫЕ СТАНДАРТЫ
СОЮЗА ССР
ЯЗЫКИ ПРОГРАММИРОВАНИЯ
ФОРТРАН
И БАЗИСНЫЙ ФОРТРАН
ГОСТ 23056—78, ГОСТ 23057—78
Издание официальное
МОСКВА—1982ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР
Я
ГОСТ
23056—78
ФОРТРАН
Programming language FORTRAN
Постановлением Государственного комитета стандартов Совета Министров СССР от 7 апреля 1978 г. № 962 срок введения установлен
с 01.01 1979 г.
Настоящий стандарт распространяется на язык программирования ФОРТРАН и устанавливает:
форму представления и правила интерпретации (синтаксис и семантику) программы, записанной на языке ФОРТРАН;
форму представления входных данных, обрабатываемых программой при ее выполнении в автоматизированной системе обработки данных;
форму представления выходных данных, получаемых в результате выполнения программы.
Стандарт не устанавливает:
механизм, которым программа трансформируется для ее выполнения в системе обработки данных (комбинация этого механизма и системы обработки данных называется процессором);
метод передачи программы и ее входных или выходных данных в систему обработки данных и обратно;
действия, необходимые для запуска и управления программой в системе обработки данных;
результаты выполнения программы, если стандарт не устанавливает правил ее интерпретации;
размер и сложность программы;
диапазон или точность представления числовых значений;
состав и форму документации на трансляторы с языка ФОРТРАН и программы, записанные на языке ФОРТРАН.
Стандарт полностью соответствует международной рекомендации ИСО/Р 1539—72.
(Измененная редакция, Изм. № 1).
Издание официальное Перепечатка воспрещена
★
* Переиздание (июнь 1982 г.) с Изменением № 1,
утвержденным в июне 1980 г. (ИУС 9—80).
@ Издательство стандартов, 1982ОБЩИЕ ПОЛОЖЕНИЯ
Стандарт предназначен для достижения высокой степени мобильности и машинной независимости программ, записанных на языке ФОРТРАН, позволяющей использовать их в различных автоматизированных системах обработки данных.
Процессор, выполняющий программы, записанные на языке ФОРТРАН, считается согласованным с настоящим стандартом, если он воспринимает и интерпретирует в соответствии с настоящим описанием по крайней мере те формы и соотношения, которые описаны в настоящем стандарте.
Любое ограничение или запрет, сформулированные в настоящем стандарте, означает следующее: если в какой-либо программе это ограничение не выполнено или запрет нарушен, то такая программа считается несогласованной с настоящим стандартом.
Разд. 1 (Измененная редакция, Изм. № 1).
СТРУКТУРА ЯЗЫКА
Настоящий раздел определяет общую структуру программ, записанных на языке ФОРТРАН. В разделе содержатся также определенные разъяснения, касающиеся смысла некоторых фраз и отдельных слов.
Программа, которая представляет собой описание некоторой вполне законченной вычислительной процедуры и может быть выполнена соответствующим процессором, называется выполнимой программой (п. 9.1.7). Таким образом, выполнимая программа содержит исчерпывающую информацию о форме записи исходных данных и алгоритмах их переработки с целью получения искомых результатов, о вводимых в употребление внутренних объектах и о форме представления окончательных результатов.
Выполнимая программа состоит из одного или нескольких программных модулей (п. 9.1.3), один (и только один) из которых является головным модулем (п. 9.1.4).
Выполнение программы начинается с выполнения ее головного модуля. Однако в любом программном модуле (в том числе и в головном), за исключением модуля-блока данных, могут использоваться внешние процедуры (разд. 9), описывающие вне данного модуля отдельные процедуры процесса обработки данных. Для определения внешних процедур средствами ФОРТРАНа служат модули-процедуры (разд. 8).
Внешняя процедура может быть внешней функцией или внешней подпрограммой (разд. 8 и 9). Внешние процедуры могут определяться и другими средствами, отличными от языка ФОРТРАН. Эти средства настоящим стандартом не определяются.
Как отмечалось выше, в выполняемой программе должна содержаться исчерпывающая информация о вводимых в употребление внутренних объектах. В ФОРТРАНе такими объектами являются в частности, общие блоки данных (и. 7.2.1.3). Для придания начальных значений элементам блоков данных служат модули-спецификации (пн. 8.5, 9.1.5). Каждый такой модуль начинается с заголовка спецификации блока данных. В модулях-спецификациях не должны использоваться внешние процедуры.
(Измененная редакция, Изм. № 1).
(Исключен, Изм. № 1).
Каждый программный модуль состоит из предложений и комментариев. В этом смысле головной модуль — это последовательность предложений и комментариев ФОРТРАНа, не содержащая заголовков функций, заголовков подпрограмм и заголовков спецификаций блоков данных; модуль, не являющийся головным, начинается либо с заголовка функции, либо с заголовка подпрограммы, либо с заголовка спецификации блока данных.
Предложение делится на физические части, называемые строками, первая из которых называется начальной строкой, а остальные — строками-продолжениями. Каждый комментарий представляет собой строку, не являющуюся предложением или его частью (п. 3.2).
25 (Измененная редакция, Изм. № 1).
Предложения ФОРТРАНа распадаются на два основных класса: выполняемые (или операторы) и невыполняемые (или объявления). Операторы определяют действия в программе, тогда .как объявления (частными случаями которых являются заголовки функций, заголовки подпрограмм и заголовки спецификаций блока данных) описывают способ использования программы, характеристики операндов, способ редактирования данных, вводимые в употребление функции или размещение данных (пп. 7.1, 7.2).
Синтаксическими элементами предложения являются имена и операции. Имена используются для ссылок на объекты, например, на данные или процедуры. Операции определяют действия над именованными объектами.
Один частный случай имен, имя массива, заслуживает особого рассмотрения. С именем массива должен быть связан размер идентифицируемого массива, определяемый в описании массива (п. 7.2.1.1). Имя массива, дополненное индексом, используется для идентификации конкретного элемента массива (п. 5.1.3).
Имена данных, арифметические и логические операции, а также операции отношения могут быть связаны в выражения. Выражение служит для задания правил вычисления значения: это значение получается в результате выполнения указанных в выражении операций над именованными данными.
Для идентификации в ФОРТРАНе используются имена и целые числа без знака (п. 5.1.1). Данные и процедуры именуются. Предложения помечаются целыми числами без знака. Устройства ввода/вывода нумеруются (разд. 3, 6, 7).
В настоящем стандарте встречаются условные обозначения предложений ФОРТРАНа, содержащие список элементов; во всех таких случаях предполагается, что список содержит по крайней мере один элемент, если не оговорено противное. Например, запись
SUBROUTINE s(al; а2,...., а„) обозначает заголовок подпрограммы, причем предполагается, что в список, заключенный в круглые скобки, входит по крайней мере одно символическое имя а? Таким образом, список элементов есть либо один элемент, либо последовательность элементов, отделенных друг от друга запятой.
Далее предполагается, что множественное число существительного в любой фразе означает в качестве частного случая также и единственное число этого существительного, если только контекст фразы не запрещает такую интерпретацию.
Термин «ссылка» используется со специальным смыслом, определенным в разд. 5.
ПРАВИЛА ЗАПИСИ ПРОГРАММЫ
Вводная часть (Исключена, Изм. № 1).
Алфавит ФОРТРАНа. При записи программного модуля используются только символы, входящие в алфавит ФОРТРАНа. Этот алфавит делится на три группы символов: цифры, буквы и специальные символы. Множество символов, образующих алфавит ФОРТРАНа, считается неупорядоченным.
Цифры. Цифра — это один из десяти символов:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Если не оговорено противное и уместно считать последовательность цифр числом, то оно будет интерпретироваться как число в десятичной системе счисления.
Восьмеричная цифра — это один из восьми символов:
0, 1, 2, 3, 4, 5, 6, 7.
Восьмеричные цифры используются только в операторах останова (п. 7.1.2.7.1) и паузы (п. 7.1.2.7.2).
Буквы. Буква — это одна из двадцати шести символов: А, В, С, D, Е, F, G, Н, I, J, К, L, М, N, О, Р, Q, R, S, Т, U, V, W, X, Y, Z.
Буквенно-цифровые символы. Буквенно-цифровой символ — это либо буква, либо цифра.
Специальные символы. Специальный символ — это один из одиннадцати символов:
Символ |
Название символа Пробел |
+ |
Равно Плюс |
* / ( ) |
Минус Звездочка Дробная черта Круглая скобка левая (левая скобка) Круглая скобка правая (правая скобка) Запятая Точка |
п |
Знак денежной единицы |
Символ пробела. Символ пробела — это отсутствие какого-либо графического изображения в данной позиции. Кроме специально оговоренных случаев (пп. 3.2.2—3.2.4, 4.2.6, 5.1.1.6, 7.2.3.6 и 7.2.3.8), символ пробела не является значащим и поэтому может свободно использоваться для улучшения наглядности программы в любом ее месте с учетом ограничений на строки продолжения (п. 3.3).
Строки. Строка — это последовательность, состоящая из 72 символов. Каждый символ должен принадлежать алфавиту ФОРТРАНа, за исключением случаев, описанных в пп. 4.2.6, 5.1.1.6, 7.2.3.1 и 7.2.3.8.
Позиции символов в строке последовательно нумеруются слева направо от 1 до 72 включительно.
Комментарий. Буква С в позиции 1 какой-либо строки указывает на то, что данная строка является комментарием. За комментарием должны непосредственно следовать либо другой комментарий, либо начальная строка, либо заключительная строка (п. 3.2.2).
Комментарии не оказывают никакого влияния на выполнение программы, их можно использовать для пояснений.
Заключительная строка. Заключительной строкой называется такая строка, которая в позициях 1—6 содержит пробелы, а в позициях 7—72 — пробелы и буквы Е, N и D. Эти буквы должны следовать в том порядке, в каком они приведены выше, каждая по одному разу, и могут размещаться в любых этих позициях; в остальных позициях должны содержаться пробелы. Заключительная строка указывает процессору конец текста программного модуля (п. 9.1.3). Текст каждого программного модуля обязательно должен завершаться точно одной заключительной строкой.
Начальная строка. Начальной строкой называется такая строка, которая не является ни комментарием, ни заключительной строкой и содержит пробел или цифру 0 в позиции 6. В позициях 1—5 содержится либо метка предложения, либо пробелы.
Строка-продолжение. Строкой-продолжением называется такая строка, которая не является комментарием и в позиции 6 содержит символ, отличный от пробела и цифры 0.
Строка-продолжение может непосредственно следовать только за начальной строкой или за другой строкой-продолжением.
Предложения. Предложение состоит из одной начальной строки, за которой может следовать до 19 строк-продолжений. Символы, образующие предложение, записываются в позициях 7— 72 каждой из строк и считаются упорядоченными: сначала идут символе:, записанные в начальной строке, затем — символы, записанные в первой строке-продолжении (если она имеется), затем — символы, записанные во второй строке-продолжении (если она имеется) и т. д. В каждой строке символы считаются упорядоченными по возрастанию номеров позиций, в которых они записаны (учитываются только символы, расположенные в позициях 7—72).
Метка предложения. Любсе предложение может быть помечено, чтобы на него можно было ссылаться в других предложениях. Метка предложения состоит из последовательности от одной до пяти цифр. Величина целого без знака, представленного этой последовательностью 'цифр, не играет роли, но она должна быть больше нуля. Метка предложения должна быть помещена в позициях 1—5 начальной строки этого предложения и может начинаться с любой из этих позиций. В одном программном модуле одной и той же меткой не должно быть помечено более одного предложения. При отождествлении меток ведущие нули не учитываются.
Символические имена. Символическое имя состоит из буквы, за которой может следовать еще до пяти буквенно-цифровых символов (см. пп. 10.1 —10.1.10 относительно классификации символических имен и ограничений на их использование).
Упорядоченность символов. Символы, образующие программный модуль, считаются упорядоченными. В частности, любой осмысленный набор символов, образующий имена, строки и предложения, является упорядоченным. Эта упорядоченность определяется упорядоченностью символов в строке (п. 3.2) и порядком следования строк в программном модуле.
3.1.1—3.1.4, 3.1.4.1, 3.2, 3.2.1—3.2.4, 3.3—3.6 (Измененная редакция, Изм. № 1).
ТИПЫ ДАННЫХ