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

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

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

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

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

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

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

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

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

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

VII - внешняя процедура, которая на основании информации, содержащейся в данном программном модуле, не может быть отнесена ни к подпрограммам, ни к внешним функциям;

VIII - общий блок.

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

10.1.1. Соотношения между классами. Символическое имя из класса VIII некоторого программного модуля может принадлежать также к одному из классов I, II или III того же программного модуля.

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

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

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

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

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

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

Символическое имя, употребленное в объявлении типа, не может принадлежать классу VI или VII. Для каждого символического имени в одном модуле допускается только одно такое употребление.

Символическое имя, встречающееся в объявлении внешних имен, принадлежит либо классу V, либо классу VI, либо классу VII. Для каждого символического имени в одном модуле допускается только одно такое употребление.

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

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

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

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

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

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

в объявление типа;

в оператор ввода/вывода в качестве указателя формата.