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) с этим именем.