Статус документа
Статус документа

ГОСТ 23057-78 Язык программирования. Базисный ФОРТРАН (с Изменением N 1)

10. ВНУТРИ- И МЕЖМОДУЛЬНЫЕ СООТНОШЕНИЯ

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

I - массив и элементы этого массива;

II - переменная;

III - внутренняя функция;

IV - встроенная функция;

V - внешняя функция;

VI - подпрограмма.

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

10.1.1. Соотношения между классами. Если в программном модуле символическое имя из класса V встречается непосредственно после слова в заголовке функции, то оно обязано принадлежать также классу II того же программного модуля.

Символическое имя, будучи использовано однажды в любом программном модуле выполнимой программы в классе V или VI, не может употребляться ни в каком другом программном модуле этой выполнимой программы для обозначения другого объекта из этих классов.

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

10.1.2. Эффект употребления символических имен в объявлениях спецификаций. Символическое имя принадлежит классу I тогда и только тогда, когда оно употребляется в описании массива в качестве имени описания. Для каждого символического имени в одном модуле допускается только одно такое употребление.

Символическое имя, употребляемое в объявлении общих объектов, принадлежит либо классу I, либо классу II, но не классу V (п.8.3.1). Для каждого символического имени в одном модуле допускается только одно такое употребление.

Символическое имя, употребленное в объявлении эквивалентности, принадлежит либо классу I, либо классу II, но не классу V (п.8.3.1).

10.1.3. Массив и элемент массива. За каждым вхождением символического имени, обозначающего какой-либо массив, должен непосредственно располагаться индекс; исключение составляют следующие вхождения:

в список оператора ввода/вывода;

в список формальных параметров;

в список фактических параметров при ссылке на внешнюю процедуру;

в объявление общих объектов.

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

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

10.1.5. Подпрограмма. Символическое имя принадлежит классу VI, если оно встречается непосредственно после слова в заголовке подпрограммы или непосредственно после слова в операторе вызова подпрограммы.

10.1.6. Внутренняя функция. Символическое имя принадлежит классу III в некотором программном модуле, если оно:

не принадлежит ни классу I, ни классу IV;

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

в рассматриваемом модуле имеется объявление внутренней функции (п.8.1.1) с этим именем.