Cтраница 2
Конкретные объекты идентифицируются внутренним именем. [16]
Таким образом, появление внутреннего имени в поле метки предложения определяет и значение этого имени, если известно истинное начало данного модуля в памяти машины. Что касается внешних и общих имен, то для определения их значений нужна дополнительная информация о том, на какие именно внешние и общие объекты ссылаются эти имена, а также информация об общем распределении памяти между модулями и общими объектами. [17]
Оператор DECLARE явно объявляет идентификаторы как внутренние имена блока, для которого оператор DECLARE является внутренним. Он может появиться в любом месте внутреннего текста блока, но всегда воспринимается транслятором так, как будто он записан в начале блока. [18]
Оператор GENERATE создает новую личность с уникальным внутренним именем. [19]
СОММ служит только для установления соответствия между внутренними именами. Внешние имена не могут содержать более 15 символов. [20]
Обработанные операторы переписываются в таблицу описаний макрокоманд, причем внутренние имена в поле названия уничтожаются. Второй просмотр заканчивается после обработки всех операторов тела макроопределения. [21]
Если блок не имеет метки, то печатается его внутреннее имя. [22]
Идентификаторы в списке параметров оператора PROCEDURE явно объявляются как внутренние имена процедурного блока, который начинается этим оператором. [23]
Область действия имени задается в программе атрибутами INTERNAL для внутреннего имени и EXTERNAL для внешнего имени. [24]
Замена внутренних имен нужна для того, чтобы избежать переопределения внутренних имен при многократном использовании одной и той же макрокоманды в программе. [25]
Примитив OPEN сигнализирует о любом виде ошибки, возвращая величину IOERROR вместо законного внутреннего имени. Как было показано, удобная реализация должна иметь в качестве внутренних имен малые положительные целые числа; согласно OPEN просто возвращается первое неприсвоенное значение. В этом случае естественной величиной для IOERROR является нуль. [26]
![]() |
Каталоги используются для преобразования внешних имен во внутренние. [27] |
Во многих случаях ( таких как приведенный выше пример с именем файла) внутреннее имя файла представляет собой уникальное целое число, служащее индексом в таблице ядра. [28]
Другим примером самоопределенной величины является выражение М - Р, где М и Р - внутренние имена в данном модуле. Очевидно, что значение выражения М - Р не зависит от распределения памяти. В ряде случаев использование таких самоопределенных величин может оказаться весьма удобным. [29]
Для определения абсолютных адресов элементов данных сначала используется таблица символических имен, в которой указываются внутренние имена переменных, объявленных в исходном модуле. [30]