УДК 681.3.065.4:006.354 Группа П85
ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР
Я
ГОСТ
23057—78*
Постановлением Государственного комитета стандартов Совета Министров СССР от 7 апреля 1978 г. № 962 срок введения установлен
с 01.01 1979 г.
Настоящий стандарт распространяется на язык программирования Базисный ФОРТРАН и устанавливает:
форму представления и правила интерпретации (синтаксис и семантику) программы, записанной на языке Базисный ФОРТРАН;
форму представления входных данных, обрабатываемых программой при ее выполнении в автоматизированной системе обработки данных;
форму представления выходных данных, получаемых в результате выполнения программы.
Стандарт не устанавливает:
механизм, которым программа трансформируется для ее выполнения в системе обработки данных (комбинация этого механизма и системы обработки данных называется процессором);
метод передачи программы и ее входных или выходных данных в систему обработки данных и обратно;
действия, необходимые для запуска и управления программой в системе обработки данных;
результаты выполнения программы, если стандарт не устанавливает правил ее интерпретации;
размер и сложность программы;
диапазон или точность представления числовых значений;
состав и форму документации на трансляторы с языка Базисный ФОРТРАН и программы, записанные на языке Базисный ФОРТРАН.
Стандарт полностью соответствует международной рекомендации ИСО/Р 1539—72.
(Измененная редакция, Изм. № 1).
Издание официальное Перепечатка воспрещена
★
* Переиздание (июнь 1982 г.) с Изменением № 1, утвержденным
в июне 1980 г. (ИУС 9—80)
ОБЩИЕ ПОЛОЖЕНИЯ
Стандарт предназначен для достижения высокой степени мобильности и машинной независимости программ, записанных на языке Базисный ФОРТРАН, позволяющей использовать их в различных автоматизированных системах обработки данных.
Процессор, выполняющий программы, записанные на языке Базисный ФОРТРАН, считается согласованным с настоящим стандартом, если он воспринимает и интерпретирует в соответствии с настоящим описанием по крайней мере те формы и соотношения, которые описаны в настоящем стандарте.
Любое ограничение или запрет, сформулированные в настоящем стандарте, означают следующее: если в какой-либо программе это ограничение не выполнено или запрет нарушен, то такая программа считается несогласованной с настоящим стандартом.
Разд. 1 (Измененная редакция, Изм. № 1).
СТРУКТУРА ЯЗЫКА
Настоящий раздел определяет общую структуру программ, записанных на языке Базисный ФОРТРАН. В разделе содержатся также определенные разъяснения, касающиеся смысла некоторых фраз и отдельных слов.
Программа, которая представляет собой описание некоторой вполне законченной вычислительной процедуры и может быть выполнена соответствующим процессором, называется выполнимой программой (п. 9.1.7). Таким образом, выполнимая программа содержит исчерпывающую информацию о форме записи исходных данных и алгоритмах их переработки с целью получения искомых результатов, о вводимых в употребление внутренних объектах и о форме представления окончательных результатов.
Выполнимая программа состоит из одного или нескольких программных модулей (п. 9.1.3), один (и только один) из которых является головным модулем (п. 9.1.4).
. Выполнение программы начинается с выполнения ее головного модуля. Однако в любом программном модуле (в том числе и в головном) могут использоваться внешние процедуры (разд. 9), описывающие вне данного модуля отдельные процедуры процесса обработки данных. Для определения внешних процедур средствами Базисного ФОРТРАНа служат модули-процедуры (разд. 8).
Внешняя процедура может быть внешней функцией или внешней подпрограммой (разд. 8 и 9). Внешние процедуры могут определяться и другими средствами, отличными от языка Базисный ФОРТРАН. Эти средства настоящим стандартом не определяются. (Измененная редакция, Изм. № 1).
(Исключен, Изм. № 1).Каждый программный модуль состоит из предложений и комментариев. В этом смысле головной модуль — это последовательность предложений и комментариев Базисного ФОРТРАНа, не содержащая заголовков функций и заголовков подпрограмм; модуль, не являющийся головным, начинается либо с заголовка функции, либо с заголовка подпрограммы.
Предложение делится на физические части, называемые строками, первая из которых называется начальной строкой, а остальные — строками-продолжениями. Каждый комментарий представляет собой строку, не являющуюся предложением или его частью.
Предложения Базисного ФОРТРАНа распадаются на два основных класса: выполняемые (или операторы) и невыполняемые (или объявления). Операторы определяют действия в программе, тогда как объявления (частными случаями которых являются заголовки функций и заголовки подпрограмм) описывают способ использования программы, характеристики операндов, способ редактирования данных, вводимые в употребление функции или размещение данных (пп. 7.1, 7.2).
2.5, 2.5.1. (Измененная редакция, Изм. № 1).
Синтаксическими элементами предложения являются имена и операции. Имена используются для ссылок на объекты, например, на данные или процедуры. Операции определяют действия над именованными объектами.
Один частный случай имен, имя массива, заслуживает особого рассмотрения. С именем массива должен быть связан размер идентифицируемого массива, определяемый в описании массива (п. 7.2.1.1). Имя массива, дополненное индексом, используется для идентификации конкретного элемента массива (п. 5.1.3).
Имена данных и арифметические операции могут быть связаны в выражения. Выражение служит для задания правил вычисления значения: это значение получается в результате выполнения указанных в выражении операций над именованными данными.
Для идентификации в Базисном ФОРТРАНе используются имена и целые числа без знака (п. 5.1.1). Данные и процедуры именуются. Предложения помечаются целыми числами без знака. Устройства ввода/вывода нумеруются (разд. 3, 6, 7).
В настоящем стандарте встречаются условные обозначения предложений Базисного ФОРТРАНа, содержащие список элементов; во всех таких случаях предполагается, что список содержит по крайней мере один элемент, если не оговорено противное. Например, запись
SUBROUTINE s(a|( а2,...,а„)
обозначает заголовок подпрограммы, причем предполагается, что в список, заключенный в круглые скобки, входит по крайней мере одно символическое имя Э| Таким образом, список элементов есть либо один элемент, либо последовательность элементов, отделенных друг от друга запятой.
Далее предполагается, что множественное число существительного в любой фразе означает в качестве частного случая также и единственное число этого существительного, если только контекст фразы не запрещает такую интерпретацию.
Термин «ссылка» используется со специальным смыслом, определенным в разд. 5.
ПРАВИЛА ЗАПИСИ ПРОГРАММЫ
Алфавит Базисного ФОРТРАНа. При записи программного модуля используются только символы, входящие в алфавит Базисного ФОРТРАНа. Этот алфавит делится на три группы символов: цифры, буквы и специальные символы. Множество символов, образующих алфавит Базисного ФОРТРАНа, считается неупорядоченным.
Цифры. Цифра — это один из десяти символов: 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, 7.2.3.6 и 7.2.3.8) символ пробела не является значащим и поэтому может свободно использоваться для улучшения наглядности программы в любом ее месте, с учетом ограничений на строки продолжения (п. 3.3).
Строки. Строка — это последовательность, состоящая из 72 символов. Каждый символ должен принадлежать алфавиту Базисного ФОРТРАНа, за исключением случаев, описанных в пп. 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.
Строка-продолжение может непосредственно следовать только за начальной строкой или за другой строкой-продолжением.
Предложения. Предложение состоит из одной начальной строки, за которой может следовать до пяти строк-продолжений. Символы, образующие предложение, записываются в позициях 7— 72 каждой из строк и считаются упорядоченными: сначала идут символы, записанные в начальной строке, затем — символы, записанные в первой строке-продолжении (если она имеется), затем — символы, записанные во второй строке-продолжении (если она имеется) и т. д. В каждой строке символы считаются упорядоченными по возрастанию номеров позиций, в которых они записаны (учитываются только символы, расположенные в колонках 7—72).
Метка предложения. Любое предложение может быть помечено, с тем, чтобы на него можно было ссылаться в других предложениях. Метка предложения состоит из последовательности от одной до четырех цифр. Величина целого без знака, представленного этой последовательностью цифр, не играет роли, но она должна быть больше нуля. Метка предложения должна быть помещена в позициях 1—5 начальной строки этого предложения и может начинаться с любой из этих позиций. В одном программном модуле одной и той же меткой не должно быть помечено более одного предложения. При отождествлении меток ведущие нули не учитываются.
Символические имена. Символическое имя состоит из буквы, за которой может следовать еще до четырех буквенно-цифро- вых символов (см. пп. 10.1 —10.1.10 относительно классификации символических имен и ограничений на их использование).
Упорядоченность символов. Символы, образующие программный модуль, считаются упорядоченными. В частности, любой осмысленный набор символов, образующий имена, строки и предложения, является упорядоченным. Эта упорядоченность определяется упорядоченностью символов в строке (п. 3.2) и порядком следования строк в программном модуле.
3.6 (Измененная редакция, Изм. № 1).
ТИПЫ ДАННЫХ
В Базисном ФОРТРАНе различают данные двух типов: целые и вещественные. Каждый тип предназначен для вполне определенных целей и может иметь свое особое внутреннее представление. Поэтому интерпретация операций над данными существенно зависит от типов этих данных. Тип функции определяет тип того значения, которое доставляется в качестве результата в выражение, содержащее указатель этой функции.
Связь данного с его типом. С именем, используемым для идентификации данного или функции, связывается вполне определенный тип данных. Последовательность символов, образующих константу, определяет как значение, так и тип этой константы.
В каждом программном модуле с символическим именем, представляющим функцию, переменную или массив, связывается только один тип данных. Установленная однажды, эта связь в рамках данного программного модуля должна быть сохранена для любого другого использования этого символического имени, требующего учета типа данных.Для символического имени тип данного может быть установлен по первой букве этого имени (п. 5.3).