Товары в корзине: 0 шт Оформить заказ
Стр. 1 

64 страницы

548.00 ₽

Купить ГОСТ 23056-78 — бумажный документ с голограммой и синими печатями. подробнее

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

Наши цены ниже, чем в других местах, потому что мы работаем напрямую с поставщиками документов.

Способы доставки

  • Срочная курьерская доставка (1-3 дня)
  • Курьерская доставка (7 дней)
  • Самовывоз из московского офиса
  • Почта РФ

Распространяется на язык программирования ФОРТРАН

 Скачать PDF

Оглавление

1 Общие положения

2 Структура языка

3 Правила записи программы

4 Типы данных

5 Идентификация данных и процедур

6 Выражения

7 Предложения

8 Процедуры и модули

9 Программа

10 Внутри- и межмодульные соотношения

Алфавитный указатель терминов

 
Дата введения01.01.1979
Добавлен в базу01.09.2013
Актуализация01.01.2021

Этот ГОСТ находится в:

Организации:

05.04.1978УтвержденГосстандарт СССР962

Programming language FORTRAN

Стр. 1
стр. 1
Стр. 2
стр. 2
Стр. 3
стр. 3
Стр. 4
стр. 4
Стр. 5
стр. 5
Стр. 6
стр. 6
Стр. 7
стр. 7
Стр. 8
стр. 8
Стр. 9
стр. 9
Стр. 10
стр. 10
Стр. 11
стр. 11
Стр. 12
стр. 12
Стр. 13
стр. 13
Стр. 14
стр. 14
Стр. 15
стр. 15
Стр. 16
стр. 16
Стр. 17
стр. 17
Стр. 18
стр. 18
Стр. 19
стр. 19
Стр. 20
стр. 20
Стр. 21
стр. 21
Стр. 22
стр. 22
Стр. 23
стр. 23
Стр. 24
стр. 24
Стр. 25
стр. 25
Стр. 26
стр. 26
Стр. 27
стр. 27
Стр. 28
стр. 28
Стр. 29
стр. 29
Стр. 30
стр. 30

ГОСУДАРСТВЕННЫЕ СТАНДАРТЫ СОЮЗА ССР

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

ФОРТРАН И БАЗИСНЫЙ ФОРТРАН

ГОСТ 23056-78, ГОСТ 23057-78

Издание официальное

ГОСУДАРСТВЕННЫЙ КОМИТЕТ СССР ПО СТАНДАРТАМ

Москва

ГОСУДАРСТВЕННЫЕ СТАНДАРТЫ СОЮЗА ССР

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

ФОРТРАН

И БАЗИСНЫЙ ФОРТРАН

ГОСТ 23056-78, ГОСТ 23057-78

1982

Издание официальное

МОСКВА

ГОСТ 23056-78 Стр. 9

5.1.1.2. Вещественное число без знака. Основной формой записи вещественного числа без знака является смешанная дробь, под которой понимается запись вида

P.Q

(где Р — целая часть, a Q — дробная часть). Как целая, так и дробная часть есть целое без знака. Одна из этих частей (либо целая, либо дробная) может отсутствовать, т. е. представляться пустой последовательностью цифр. Значение константы этого вида есть процессорное приближение того числа, которое в десятичной системе счисления записывается в виде указанной смешанной дроби.

Десятичная экспонента изображается буквой Е, за которой следует целое число (без знака или со знаком). Десятичная экспонента является множителем (применяемым к числу, записанному непосредственно перед десятичной экспонентой), равным приближению результата возведения числа десять в степень, указанную целым числом, записанным после буквы Е.

Вещественное число без знака — это либо смешанная дробь, либо смешанная дробь, за которой следует десятичная экспонента, либо целое число без знака, за которым следует десятичная экспонента.

5Л. 1.3. Число двойной точности без знака. Экспонента двойной точности записывается и трактуется аналогично десятичной экспоненте, за исключением того, что вместо буквы Е используется буква D.

Число двойной точности без знака записывается как смешанная дробь, за которой следует экспонента двойной точности, либо как целое число без знака, за которым следует экспонента двойной точности.

5.1.1.4. Комплексное число. Комплексное число задается в виде упорядоченной пары вещественных чисел (каждое из которых может быть либо вещественным без знака, либо вещественным со знаком), разделенных запятой и заключенных в скобки. Значением такой константы является приближение комплексного числа, представленного указанной парой чисел, первое из которых представляет действительную, а второе — мнимую часть комплексного числа.

5Л. 1.5. Логическая константа. Логические константы «истина» и «ложь» записываются как .TRUE, и .FALSE, соответственно.

5.1.1.6. Текстовая константа. Запись текстовой константы имеет вид

nHh,h2...hn

(п—целое без знака (п>0); каждое h;— некоторый символ). Последовательность из п символов, которая следует за буквой Н, и образует собственно текстовое данное — константу. После бук-

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

(Измененная редакция, Изм. № 1).

5.1.2.    Переменная. Переменная есть данное, идентифицируемое символическим именем (п. 3.5). На это данное можно ссылаться и его можно определять (т. е. присваивать ему значение).

5.1.3.    Массив. Массив есть упорядоченный набор данных, имеющий одно, два или три измерения. Массив идентифицируется символическим именем. Идентификация этого упорядоченного набора данных как единого целого достигается посредством использования имени массива.

5.1.3.1.    Элемент массива. Элементом массива является одна из компонент набора данных, образующего массив. Элемент массива идентифицируется указанием имени массива, непосредственно за которым следует дополнительная конструкция, называемая индексом. Индекс указывает на конкретный элемент массива.

На элемент массива можно ссылаться и его можно определять.

5.1.3.2.    Индекс. Индекс представляет собой заключенный в

скобки список индексных выражений. Если индексных выражений несколько, то они отделяются друг от друга запятой. Число индексных выражений должно соответствовать объявленной размерности массива (п. 7.2.1.1), за исключением вхождения имени элемента массива в объявление эквивалентности (п.    7.2.1.4).

Идентифицируемый элемент массива определяется при помощи функции линеаризации (п. 7.2.1.1.1), используя вычисленные значения всех индексных выражений.

5.1.3.3.    Индексные выражения. Индексное выражение записывается в виде одной из следующих конструкций:

С* V+K С* V—K С* V V + K V—к V

к

где С и К — целые без знака, V — ссылка на переменную типа целый (см. разд. 6 относительно правил вычисления выражений; пп. 10.2.8 и 10.3 относительно требований на использование переменной в индексе).

ГОСТ 23*556—78 Стр. 11

5.1.4. Процедуры. Процедура (разд. 8) идентифицируется символическим именем. Процедурой является либо внутренняя функция, либо встроенная функция, либо основная внешняя функция, либо внешняя функция, либо внешняя подпрограмма. Внутренние функции, встроенные функции, основные внешние функции и внешние функции называются общим термином функции (или процедуры-функции), а внешние подпрограммы — термином подпрограммы (или процедуры-подпрограммы).

Функция доставляет результат, который называется значением функции и используется в точке ссылки на эту функцию; подпрограмма этого не делает. Способы ссылки на функции и подпрограммы отличаются друг от друга.

5.2.    Ссылка на функцию. Ссылка на функцию производится при помощи указателя функции, состоящего из имени функции, за которым следует список фактических параметров, заключенный в скобки. Если список содержит более одного параметра, то они отделяются друг от друга запятой. Допустимые виды фактических параметров функций приведены в разд. 8 (см. п. 10.2.1 относительно требований к ссылкам на функции).

5.3.    Правила типов для идентификаторов данных и процедур. Тип константы определяется ее изображением. С символическим именем, идентифицирующим блок данных или подпрограмму, не связывается никакой тип.

Тип, который связывается с символическим именем, идентифицирующим переменную, массив или внутреннюю функцию, может быть указан при помощи объявления типа. При отсутствии явного объявления типа с символическим именем связывается тип целый, если первая буква этого имени есть I, J, К, L, М, N; в противном случае связывается тип вещественный.

Если символическое имя встроенной функции или основной внешней функции используется в таком контексте, где оно идентифицирует именно одну из этих функций, то с ним связывается тип соответствующей функции, определенный в табл. 3 и 4.

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

С каждым элементом массива связывается тот же тип, который связан с именем этого массива.

5.4.    Формальные параметры. Формальный параметр внешней процедуры представляет переменную, массив, подпрограмму или внешнюю функцию.

Если формальный параметр используется в качестве имени внешней функции, то в качестве фактического параметра ему может соответствовать только имя внешней функции (разд. 8).

Если формальный параметр используется в качестве имени внешней подпрограммы, то в качестве фактического параметра ему может соответствовать только имя внешней подпрограммы.

Если формальный параметр используется для ссылки на переменную или на элемент массива, то при задании фактического параметра с этим формальным параметром должно связываться значение того же типа, которое определено для формального параметра по правилам, приведенным в п. 5.3.

Если не оговорено противное, то использование формального параметра в качестве имени переменной, массива или элемента массива допустимо при условии установления надлежащей связи с соответствующим фактическим параметром.

Процесс установления связи фактических параметров с формальными параметрами изложен в разд. 8 и 10.

6. ВЫРАЖЕНИЯ

Настоящий раздел определяет форму представления и правила вычисления арифметических и логических выражений, а также отношений. Отношение употребляется только как компонента логических выражений. Выражение формируется из операндов и знаков операций (см. п. 10.3 об ограничениях на использование операндов в выражениях).

6.1. Арифметические выражения. Арифметическое выражение формируется из знаков арифметических операций и арифметических операндов. Как выражение, так и входящие в него операнды идентифицируют значения типа целый, вещественный, двойной точности или комплексный. Знаки арифметических операций:

Знак операции    Представляемая операция

+

*

/

Сложение Вычитание Умножение Деление

Возведение в степень

Арифметические операции сложения и вычитания могут быть одноместными и двуместными. В случае одноместных операций сложения и вычитания подразумеваемым первым арифметическим операндом является нуль.

Арифметические операнды — это первичное арифметическое выражение, множитель, терм, терм со знаком, простое арифметическое выражение и арифметическое выражение.

Первичное арифметическое выражение — это либо арифметическое выражение, взятое в скобки, либо константа, либо ссыл-

ГОСТ 23056-78 Стр. 13

ка на переменную, либо ссылка на элемент массива, либо ссылка на функцию.

Множитель — это либо первичное арифметическое выражение, либо конструкция вида:

первичное арифметическое выражение ** первичное арифметическое выражение

Терм — это либо множитель, либо конструкция одного из видов

терм/множител ь

или

терм* множитель

Терм со знаком — это терм, которому непосредственно предшествует знак + или —.

Простое арифметическое выражение — это либо терм, либо два простых арифметических выражения, разделенные знаком + или —.

Арифметическое выражение — это либо простое арифметическое выражение, либо терм со знаком, либо одна из этих двух конструкций, за которой непосредственно следует знак -f или и —, за которым непосредственно следует простое арифметическое выражение.

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

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

6.2. Отношения. Отношение состоит из двух арифметических выражений, разделенных знаком операции отношения, и принимает значение «истина» или «ложь» в зависимости от выполнения

Op. 14 ГОСТ 33056--78

Знак операции

или невыполнении этого отношения. Одно из арифметических выражений может быть типа вещественный или двойной точности, тогда другое црдукно быть также типа вещественный или двойной точности (допустимы все четыре сочетания), либо оба арифметических выражения должны быть типа целый. Если в отношении одно из выражений имеет тип вещественный, а другое — тип двойной точности, то результат будет такой же, как и для отношения, в котором правым арифметическим выражением является нуль двойной точности, левым — разность двух исходных арифметических выражений (в исходном порядке), а знак операции отношения тот же самый. Знаки операций отношения:

Представляемая операция

.LT.    А'еньше

.LE.    Меньше    или    равно

.EQ.    Равно

.NE.    Не равно

.GT.    Больше

.GE.    Больше    или    равно

Знак операции

6.3. Логические выражения. Логическое выражение формируется из знаков логических операций и логических операндов и принимает значения «истина» или «ложь». Знаки логических операций:

.OR.

.AND.

.NOT.

Представляемая операция

Логическое сложение Логическое умножение Логическое отрицание

Логические операнды -■ это первичное логическое выражение, логический множитель, логический терм и логическое выражение.

Первичное логическое выражение — это либо логическое выражение, взятое в скобки, либо отношение, либо логическая константа, либо ссылка на логическую переменную, либо ссылка на элемент логического массива, либо ссылка на логическую функцию.

Логический множитель — это либо первичное логическое выражение, либо знак .NOT., за которым следует первичное логическое выражение.

Логический терм — это либо логический множитель, либо конструкция вида:

логический терм .AND. логический терм

ГОСТ 23056-78 Стр. 15

Логическое выражение — это либо логический терм, либо конструкция вида:

логическое выражение .OR. логическое выражение

6.4. Вычисление выражений. Часть выражения нуждается в вычислении только в том случае, если это необходимо для установления значения всего этого выражения. Правила формирования выражений определяют и порядок выполнения операций. Необходимо отметить, что вторым операндом операции вычитания является терм, непосредственно следующий за знаком этой операции. Вычисление выражения может производиться в соответствии с любой правильной последовательностью его формирования с учетом следующих ограничений.

Если два операнда соединены знаком операции, то порядок вычисления этих операндов произвольный. Если математическая операция коммутативна и (или) ассоциативна, то это можно использовать для переупорядочивания операндов при условии сохранения целостности выражений в скобках. Значение множителя или терма типа целый — это ближайшее целое, не превосходящее математического значения, представленного этим множителем или термом. При вычислении термов типа целый, содержащих операцию деления, законы ассоциативности и коммутативности не используются, и, следовательно, вычисление таких термов должно производиться слеза направо.

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

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

Не может быть вычислен никакой операнд, значение которого математически не определено.

7. ПРЕДЛОЖЕНИЯ

Предложения ФОРТРАНа можно разделить на выполняемые и невыполняемые. Выполняемые предложения — операторы — определяют действия; невыполняемые предложения — объявле-

2—310

ния — описывают характеристики и упорядочение данных, способ редактирования данных, вводимые в употребление функции и классификацию программных модулей

7.1. Операторы. Имеется три типа операторов операторы присваивания, операторы управления, операторы ввода/вывода

7.1    Л. Операторы присваивания. Существует три типа операторов присваивания

арифметический оператор присваивания, логический оператор присваивания, оператор предписания

7.1.1.1    Арифметический оператор присваивания. Арифметический оператор присваивания имеет вид

V — е

(v — имя переменной или имя элемента массива любого типа, отличного от логического, е — арифметическое выражение)

Выполнение такого оператора заключается в вычислении выражения е и изменении значения v в соответствии с табл. 1

Таблица \

Тип v

Тип е

Действие

Целый

Целый

Приев

То же

Вещественный

Фикс , Приев

»

Двойной точности

Фикс , Приев

»

Комплексный

Н

Вещественный

Целый

Плав , Приев

То же

Вещественный

Приев

»

Двойной точности

Дв , Вещ приев

»

Комплексный

Н

Двойной точности

Целый

Дв плав , Приев

То же

Вещественный

Дв , Приев

»

Двойной точности

Приев

»

Комплексный

Н

Комплексный

Целый

Н

То же

Вещественный

Н

»

Двойной точности

Н

>

Комплексный

Приев

ГОСТ 23056-78 Стр. 17

Примечания:,

1.    «Н»— недопустимая комбинация.

2.    «Приев.» — передача результирующего значения без изменений.

3.    «Вещ. приев».— передача результирующего значения как вещественного данного с максимальной степенью точности.

4. «Дв.» — вычисление выражения в соответствии с правилами, изложенными в п. 6.1 (или более точными), и затем «Дв. плав».

«5. «Фикс.» — отбрасывание дробной части результата и преобразование по-лученного значения в форму целого данного.

6.    «Плав.» — преобразование значения в форму вещественного данного.

7.    «Дв. плав.» — преобразование значения в форму данного двойной точности с максимальной степенью точности.

(Измененная редакция, Изм. № 1).

7.1.1.2.    Логический оператор присваивания. Логический оператор присваивания имеет вид

v = e

(v — имя логической переменной или имя элемента логического массива; е — логическое выражение).

Выполнение такого оператора заключается в вычислении логического выражения е и присваивании вычисленного значения логическому объекту v.

7.1.1.3.    Оператор предписания. Оператор предписания имеет вид

ASSIGN k ТО i

(к — метка оператора; i — имя переменной типа целый).

После выполнения такого оператора последующее выполнение любого оператора перехода по предписанию (п. 7.1.2.1.2), использующего эту переменную, приведет к тому, что следующим (п. 9.2) будет выполняться оператор, помеченный предписанной меткой к, при условии, что к этому времени не было переопределения переменной i. Меткой к должен быть помечен оператор в том же программном модуле, в котором встречается этот оператор предписания.

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

7.1.2. Операторы управления. Существует восемь типов операторов управления: операторы перехода; условный арифметический оператор; условный логический оператор;

Стр. 18 ГОСТ 23056-78

оператор вызова подпрограммы; оператор возврата; оператор продолжения; операторы останова и паузы; оператор цикла.

Метки, используемые в операторах управлении, должны по* мечать операторы в том же программном модуле, в котором используются эти операторы управления.

7.1.1.3, 7.1.2. (Измененная редакпип, Кзм. № 1),

7.1.2.1.    Операторы перехода. Существует три типа оч^ам ров перехода:

безусловный оператор перехода; оператор перехода по предписанию; вычисляемый оператор перехода.

7.1.2.1.1.    Безусловный оператор перехода. Безусловный оператор перехода имеет вид

GOTO к

(к — метка оператора).

Результат выполнения этого оператора состоит в том, 4iO следующим будет выполняться оператор, помеченный этой меткой к.

7.1.2.1.2.    Оператор перехода по предписанию. Оператор перехода по предписанию имеет вид

GOTO i, (к,.к2,.....kf<)

(i — имя переменной типа целый; каждое — метка оператора).

К моменту выполнения оператора перехода гю предписанию переменной i должно быть присвоено текущее значение предшествующим выполнением оператора предписания (п. 7.1.1.3); этим значением должна быть одна из меток списка, заключенного в скобки. Результат выполнения такого оператора перехода состоит в том, что следующим будет выполняться оператор, помеченный этой меткой.

7.1.2.1.3.    Вычисляемый оператор перехода. Вычисляемый оператор перехода имеет вид

GOTO (kj, k2,..., kn), i

(каждое kj — метка оператора; i — имя переменной типа целый).

Результат выполнения этого оператора состоит в том, что следующим будет выполняться оператор, помеченный меткой к,

УДК 681.3.065.4:006.354    Группа    П85

ГОСУДАРСТВЕННЫЙ СТАНДАРТ СОЮЗА ССР

ГОСТ 23056—781 2

Язык программирования ФОРТРАН

Programming language FORTRAN

Постановлением Государственного комитета стандартов Совета Министров СССР от 7 апреля 1978 г. Ns 962 срок введения установлен

с 01.01 1979 г.

Настоящий стандарт распространяется на язык программирования ФОРТРАН и устанавливает:

форму представления и правила интерпретации (синтаксис и семантику) программы, записанной на языке ФОРТРАН;

форму представления входных данных, обрабатываемых программой при ее выполнении в автоматизированной системе обработки данных;

форму представления выходных данных, получаемых в результате выполнения программы.

Стандарт не устанавливает:

механизм, которым программа трансформируется для ее выполнения в системе обработки данных (комбинация этого механизма и системы обработки данных называется процессором);

метод передачи программы и ее входных или выходных данных в систему обработки данных и обратно;

действия, необходимые для запуска и управления программой в системе обработки данных;

результаты выполнения программы, если стандарт не устанавливает правил ее интерпретации; размер и сложность программы;

диапазон или точность представления числовых значений; состав и форму документации на трансляторы с языка ФОРТРАН и программы, записанные на языке ФОРТРАН.

Стандарт полностью соответствует международной рекомендации ИСО/Р 1539—72.

(Измененная редакция, Изм. № 1).

ГОСТ 23056-78 Стр. 19

где i0 — значение переменной i к моменту выполнения данного оператора перехода. Действие этого оператора определено только для i0, удовлетворяющих условию l<i0<n (см. пп. 10.2.8. и 10.3 относительно использования переменной типа целый в вычисляемом операторе перехода).

7.1.2.2.    Условный арифметический оператор. Условный арифметический оператор имеет вид

IF (е) kj, k2, k3

(е — арифметическое выражение типа целый, вещественный или двойной точности; каждое к,— метка оператора).

Условный арифметический оператор служит для разветвления вычислительного процесса по трем возможным путям. При выполнении этого оператора сначала вычисляется выражение е, после чего в качестве следующего выполняется оператор, помеченный меткой кь к2 или к3 при значении е меньшем нуля, равном нулю или большем нуля соответственно.

7.1.2.3.    Условный логический оператор. Условный логический оператор имеет вид

IF(e) S

(е — логическое выражение;

S — любой оператор, кроме оператора цикла и условного логического оператора).

При выполнении этого оператора сначала вычисляется логическое выражение е. Если е принимает значение «истина», то выполняется оператор S. Если е принимает значение «ложь», то оператор S выполняется так, как если бы он был оператором продолжения (п. 7Л.2.6) (т. е. в этом случае оператор S фактически не выполняется).

7.1.2.4. Оператор вызова подпрограммы. Оператор вызова подпрограммы имеет вид

CALL s(а], а2,..., а„)

или

CALL s

(s — имя подпрограммы;

каждое а, — фактический параметр (п. 8.4.2)).

В начале выполнения оператора вызова подпрограммы происходит обращение к указанному модулю-подпрограмме. Возврат управления из этого модуля завершает выполнение оператора вызова подпрограммы.

(Измененная редакция, Изм. № 1).

Стр. 2 ГОСТ 23056-78

1. ОБЩИЕ ПОЛОЖЕНИЯ

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

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

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

Разд. 1 (Измененная редакция, Изм. № 1).

2. СТРУКТУРА ЯЗЫКА

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

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

2.2.1.    Выполнимая программа состоит из одного или нескольких программных модулей (п. 9.1.3), один (и только один) из которых является головным модулем (п. 9.1.4).

2.2.2.    Выполнение программы начинается с выполнения ее головного модуля. Однако в любом программном модуле (в том числе и в головном), за исключением модуля-блока данных, могут использоваться внешние процедуры (разд. 9), описывающие вне данного модуля отдельные процедуры процесса обработки данных. Для определения внешних процедур средствами ФОРТРАНа служат модули-процедуры (разд. 8).

2.3. Внешняя процедура может быть внешней функцией или внешней подпрограммой (разд. 8 и 9). Внешние процедуры могут определяться и другими средствами, отличными от языка ФОРТРАН. Эти средства настоящим стандартом не определяются.

ГОСТ 23056-78 Стр. 3

Как отмечалось выше, в выполняемой программе должна содержаться исчерпывающая информация о вводимых в употребление внутренних объектах. В ФОРТРАНе такими объектами являются в частности, общие блоки данных (п. 7.2.1.3). Для придания начальных значений элементам блоков данных служат модули-спецификации (пп. 8.5, 9.1.5). Каждый такой модуль начинается с заголовка спецификации блока данных. В модулях-спецификациях не должны использоваться внешние процедуры.

(Измененная редакция, Изм. № 1).

2.3.1 (Исключен, Изм. № 1).

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

2.5.    Предложение делится на физические части, называемые строками, первая из которых называется начальной строкой, а остальные — строками-продолжениями. Каждый комментарий представляет собой строку, не являющуюся предложением или его частью (п. 3.2).

2.4,2.5 (Измененная редакция, Изм. № 1).

2.5.1.    Предложения ФОРТРАНа распадаются на два основных класса: выполняемые (или операторы) и невынолняемые (или объявления). Операторы определяют действия в программе, тогда ,как объявления (частными случаями которых являются заголовки функций, заголовки подпрограмм и заголовки спецификаций блока данных) описывают способ использования программы, характеристики операндов, способ редактирования данных, вводимые в употребление функции или размещение данных (пп. 7.1, 7.2).

2.6.    Синтаксическими элементами предложения являются имена и операции. Имена используются для ссылок на объекты, например, на данные или процедуры. Операции определяют действия над именованными объектами.

2.6.1.    Один частный случай имен, имя массива, заслуживает особого рассмотрения. С именем массива должен быть связан размер идентифицируемого массива, определяемый в описании массива (п. 7.2.1 Л). Имя массива, дополненное индексом, используется для идентификации конкретного элемента массива (п. 5.1.3).

2.7.    Имена данных, арифметические и логические операции, а также операции отношения могут быть связаны в выражения. Выражение служит для задания правил вычисления значения: это значение получается в результате выполнения указанных в выражении операций над именованными данными.

Стр. 4 ГОСТ 23056-78

2.8.    Для идентификации в ФОРТРАНе используются имена и целые числа без знака (п. 5.1.1). Данные и процедуры именуются. Предложения помечаются целыми числами без знака. Устройства ввода/вывода нумеруются (разд. 3, 6, 7).

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

SUBROUTINE s(a„ а2,...., ап) обозначает заголовок подпрограммы, причем предполагается, что в список, заключенный в круглые скобки, входит по крайней мере одно символическое имя аг Таким образом, список элементов есть либо один элемент, либо последовательность элементов, отделенных друг от друга запятой.

Далее предполагается, что множественное число существительного в любой фразе означает в качестве частного случая также и единственное число этого существительного, если только контекст фразы не запрещает такую интерпретацию.

Термин «ссылка» используется со специальным смыслом, определенным в разд. 5.

3. ПРАВИЛА ЗАПИСИ ПРОГРАММЫ

Вводная часть (Исключена, Изм. № 1).

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

3.1.1.    Цифры. Цифра — это один из десяти символов:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Если не оговорено противное и уместно считать последовательность цифр числом, то оно будет интерпретироваться как число в десятичной системе счисления.

Восьмеричная цифра — это один из восьми символов:

O,    1, 2, 3, 4, 5, б, 7.

Восьмеричные цифры используются только в операторах останова (п. 7.1.2.7.1) и паузы (п. 7.1.2.7.2).

3.1.2.    Буквы. Буква — это одна из двадцати шести символов: А, В, С, D, Е, F, G, Н, I, J, К, L, М, N, О,

P, Q, R, S, Т, U, V, W, X, Y, Z.

3.1.3.    Буквенно-цифровые символы. Буквенно-цифровой символ — это либо буква, либо цифра.

3.1.4.    Специальные символы. Специальный символ — это один из одиннадцати символов:

ГОСТ 23056-78 Стр. 5

Символ

Название символа

Пробел

=

Равно

+

Плюс

Минус

*

Звездочка

/

Дробная черта

(

Круглая скобка левая

(левая скобка)

)

Круглая скобка правая

(правая скобка)

>

Запятая

Точка

Й

Знак денежной единицы

3.1.4.1.    Символ пробела. Символ пробела — это отсутствие какого-либо графического изображения в данной позиции. Кроме специально оговоренных случаев (пп. 3.2.2—3.2.4, 4.2.6, 5.1.1.6, 7.2.3.6 и 7.2.3.8), символ пробела не является значащим и поэтому может свободно использоваться для улучшения наглядности программы в любом ее месте с учетом ограничений на строки продолжения (п. 3.3).

3.2. Строки. Строка — это последовательность, состоящая из 72 символов. Каждый символ должен принадлежать алфавиту ФОРТРАНа, за исключением случаев, описанных в пп. 4.2.6, 5.1.1.6, 7.2.3.1 и 7.2.3.8.

Позиции символов в строке последовательно нумеруются слева направо от 1 до 72 включительно.

3.2.1.    Комментарий. Буква С в позиции 1 какой-либо строки указывает на то, что данная строка является комментарием. За комментарием должны непосредственно следовать либо другой комментарий, либо начальная строка, либо заключительная строка (п. 3.2.2).

Комментарии не оказывают никакого влияния на выполнение программы, их можно использовать для пояснений.

3.2.2.    Заключительная строка. Заключительной строкой называется такая строка, которая в позициях 1—6 содержит пробелы, а в позициях 7—72 — пробелы и буквы Е, N и D. Эти буквы должны следовать в том порядке, в каком они приведены выше, каждая по одному разу, и могут размещаться в любых этих позициях; в остальных позициях должны содержаться пробелы. Заключительная строка указывает процессору конец текста программного модуля (п. 9.1.3). Текст каждого программного модуля обязательно должен завершаться точно одной заключительной строкой.

3.2.3.    Начальная строка. Начальной строкой называется такая строка, которая не является ни комментарием, ни заключительной строкой и содержит пробел или цифру 0 в позиции 6. В позициях 1—5 содержится либо метка предложения, либо пробелы.

Стр. 6 ГОСТ 23056-78

3.2.4. Строка-продолжение. Строкой-продолжением называется такая строка, которая не является комментарием и в позиции 6 содержит символ, отличный от пробела и цифры 0.

Строка-продолжение может непосредственно следовать только за начальной строкой или за другой строкой-продолжением.

3.3.    Предложения. Предложение состоит из одной начальной строки, за которой может следовать до 19 строк-продолжений. Символы, образующие предложение, записываются в позициях 7— 72 каждой из строк и считаются упорядоченными: сначала, идут символе?, записанные в начальной строке, затем — символы, записанные в первой строке-продолжении (если она имеется), затем — символы, записанные во второй строке-продолжении (если она имеется) и т. д. В каждой строке символы считаются упорядоченными по возрастанию номеров позиций, в которых они записаны (учитываются только символы, расположенные в позициях 7—72).

3.4.    Метка предложения. Любое предложение может быть помечено, чтобы на него можно было ссылаться в других предложениях. Метка предложения состоит из последовательности oi одной до пяти цифр. Величина целого без знака, представленного этой последовательностью цифр, не играет роли, но она должна быть больше нуля. Метка предложения должна быть помещена в позициях 1—5 начальной строки этого предложения и может начинаться с любой из этих позиций. В одном программном модуле одной и той же меткой не должно быть помечено более одного предложения. При отождествлении меток ведущие нули не учитываются.

3.5.    Символические имена. Символическое имя состоит из буквы, за которой может следовать еще до пяти буквенно-цифровых символов (см. пп. 10.1 —10.1.10 относительно классификации символических имсн и ограничений на их использование).

3.6.    Упорядоченность символов. Символы, образующие программный модуль, считаются упорядоченными. В частности, любой осмысленный набор символов, образующий имена, строки и предложения, является упорядоченным. Эта упорядоченность определяется упорядоченностью символов в строке (п. 3.2) и порядком следования строк в программном модуле.

3.1, 3.1.1 —3.1.4, 3.1.4.1, 3.2, 3.2.1—3.2.4, 3.3—3.6 (Измененная редакция, Изм. № 1).

4. ТИПЫ ДАННЫХ

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

ГОСТ 23056-78 Стр. 7

этих данных. Тип функции определяет тип того значения, которое доставляется в качестве результата в выражение, содержащее указатель этой функции.

4.1.    Связь данного с его типом. С именем, используемым для идентификации данного или функции, связывается вполне определенный тип данных. Последовательность символов, образующих константу, определяет как значение, так и тип этой константы.

В каждом программном модуле с символическим именем, представляющим функцию, переменную или массив, связывается только один тип данных. Установленная однажды, эта связь в рамках данного программного модуля должна быть сохранена для любого другого использования этого символического имени, требующего учета типа данных.

Для символического имени тип данных может быть установлен указанием ею в объявлении типа (п. 7.2.1.6) для любого типа данных, кроме текстового. Такое явное объявление аннулирует неявную связь, устанавливаемую для целого и вещестгснного типов (п. 5.3).

Не существует способа установления связи символического имени с текстовым типом данных, поэтому данные этого типа, за исключением констант, идентифицируются с помощью имени одного из остальных типов (см., например, п. 8.4.2.).

(Измененная редакция, Изм. № 1).

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

4.2.1.    Тип целый. Целое данное — это всегда точное представление целого значения. Оно может принимать только целые (положительные, отрицательные и нулевое) значения.

4.2.2.    Тип вещественный. Вещественное данное — это процессорное приближение вещественного значения. Оно может принимать положительные, отрицательные и нулевое значения.

4.2.3.    Тип двойной точности. Данное двойной точности — это процессорное приближение вещественного значения. Оно может принимать положительные, отрицательные и нулевое значения. Точность приближения, не определяемая здесь, должна быть больше, чем для типа вещественный.

4.2.4.    Тип комплексный. Комплексное данное — это процессорное приближение комплексного значения. Это приближение представлено в виде упорядоченной пары вещественных данных. Первый элемент пары представляет действительную, а второй — мнимую часть комплексного числа. Соответственно, каждый элемент имеет ту же точность приближения, что и вещественное данное.

4.2.5.    Тип логический. Логическое данное может принимать одно из двух логических значений: «истина» или «ложь».

4.2.6.    Тип текстовый. Текстовое данное — это последовательность символов. Эта последовательность может состоять из любых символов, допускающих представление в процессоре. В текстовом данном символ пробела является допустимым и значащим.

(Измененная редакция., Изм. № Ц.

5. ИДЕНТИФИКАЦИЯ ДАННЫХ И ПРОЦЕДУР

Имена используются как для ссылок на данные и процедуры, так и для любой другой их идентификации.

Термин «ссылка» используется при такой идентификации данного, когда подразумевается, что текущее значение этого данного становится доступным при выполнении предложения (оператора), содержащего эту ссылку. Если данное идентифицируется, но его значение не обязательно становится доступным, то говорят, что данное именуется. Один случай, когда данное именуется, представляет особый интерес — это когда данному присваивается значение и тем самым производится определение или переопределение (значения) данного, т. е. данное либо впервые получает некоторое конкретное значение, либо ему присваивается новое значение. В случае процедуры термин «ссылка» означает, что действия, определяемые этой процедурой, станут доступными при выполнении предложения (оператора), содержащего эту ссылку.

Полное и строгое объяснение понятий «ссылка» и «определение» (включая и «переопределение») содержится в разд. 10.

5.1.    Имена данных и процедур. С помощью имен данных идентифицируются константы, переменные, массивы или элементы массивов, а также блоки (п. 7.2.1.3). С помощью имен процедур идентифицируются функции и подпрограммы.

5.1.1.    Константы. Константа является данным, которое всегда определено в процессе выполнения программы и не может быть переопределено (т. е. изменено). Для каждого типа данных имеются свои правила записи констант.

Среди числовых констант (чисел) типа целый, вещественный и двойной точности различаются число без знака и число со знаком. Последнее представляет собой число без знака, непосредственно перед которым расположен знак плюс или минус. Термином «число» обозначается как число со знаком, так и число без знака-

5.1.1.1.    Целое число без знака. Целое число без знака записывается как непустая последовательность цифр. Значение константы этого вида в точности равно числу, изображаемому в десятичной системе счисления этой константой.

1

Издание официальное    Перепечатка    воспрещена

2

Переиздание (июнь 1982 г.) с Изменением № }, утвержденным в июне 1980 г. (МУС 9^80).

© Издательство стандартов, 1982