Cтраница 2
Всякий раз, когда мы помещаем что-либо на вершину стека, например, когда мы создаем локальный контекст для вложенного вызова функции, расстояние между вершиной стека и содержимым локального контекста увеличивается на одно слово. [16]
Второе и третье понятия возникают при рассмотрении контекстных продукций как контекстно-свободных продукций, применяемых только в определенном локальном контексте. [17]
Значение О в поле context означает, что мы имеем дело с глобальным контекстом, значение 1 - с локальным контекстом левого операнда, а значение 2 - с локальным контекстом правого операнда дизъюнкции. [18]
Индексные карты локальных величии. [19] |
Всякий раз, когда мы помещаем что-либо на вершину стека, например, когда мы создаем локальный контекст для вложенного вызова функции, расстояние между вершиной стека и содержимым локального контекста увеличивается на одно слово. [20]
Значение О в поле context означает, что мы имеем дело с глобальным контекстом, значение 1 - с локальным контекстом левого операнда, а значение 2 - с локальным контекстом правого операнда дизъюнкции. [21]
Среди ролей included-object важное место отводится роли anchor ( якорь), представляющей объект, положение которого в общем ансамбле ( сборке) должно быть фиксированно, и таким образом определяет локальный контекст для узла. [22]
Необходимо указать, что эллипсис - более локальное явление, чем ссылки. Локальный контекст всегда достаточен для восстановления эллипсиса. Для восстановления эллипсиса большую роль играет не только семантика, но и синтаксис. [23]
Индексные карты локальных величии. [24] |
С с помощью индексной карты 1, которая указывает на количество слов между основанием локального контекста и каждой локальной величиной; на рис. 15.7 6 показан пример с тремя локальными величинами. При каждом изменении локального контекста изменяется и эта карта. Если 1 описывает положение п локальных величин, то l [ k, m ] будет обозначать такое расширение карты 1, при котором относительное положение локальной величины п 1 будет равно m 1 ( отсчитывая от основания локального контекста), для локальной величины п 2 это будет т 2 и так далее до локальной величины п k, которая будет отстоять на m k слов. Необходимо помнить, что эта карта как структура данных не возникает при непосредственной работе программы, а существует лишь на этапе ее компиляции. [25]
Успех метода введения фиктивных правил [43] как общего средства для увеличения эффективного локального контекста оправдывает включение в ANALYZER алгоритма осуществления таких введений там, гщ: это иеобходимо. Иногда этот метод сразу приводит к положительным результатам, а иногда только указывает на те изменения, которые может попытаться осуществить БНФ программист. [26]
Вызов функции. [27] |
Заметьте, что вначале вводится величина самого правого аргумента, а затем величины аргументов слева от него. Причины этого станут ясны ниже. Ссылка на локальные величины ( параметры функции) осуществляется путем индексирования локального контекста, начиная от вершины стека. Локальный контекст может быть расширен использованием tv - выражения в FC. В этом случае новая величина ( или величины) будет занесена в стек вычислений. [28]
Многие затруднения, встречающиеся при расширении алгоритма, привели к созданию программ для автоматической генерации таблиц приоритета и других синтаксически ориентированных методов. У всех этих программ есть одно общее свойство с представленным здесь алгоритмом: их решения основываются на нескольких символах, называемых локальным контекстом, которые находятся в вершине стека или в голове входной строки. [29]
С с помощью индексной карты 1, которая указывает на количество слов между основанием локального контекста и каждой локальной величиной; на рис. 15.7 6 показан пример с тремя локальными величинами. При каждом изменении локального контекста изменяется и эта карта. Если 1 описывает положение п локальных величин, то l [ k, m ] будет обозначать такое расширение карты 1, при котором относительное положение локальной величины п 1 будет равно m 1 ( отсчитывая от основания локального контекста), для локальной величины п 2 это будет т 2 и так далее до локальной величины п k, которая будет отстоять на m k слов. Необходимо помнить, что эта карта как структура данных не возникает при непосредственной работе программы, а существует лишь на этапе ее компиляции. [30]