Скачиваний:
6
Добавлен:
01.05.2014
Размер:
3.68 Кб
Скачать

s792 Пред.СтраницаСлед.Страница  Раздел Содержание     5.3.4. Расширенный вывод для АТ-грамматики     В качестве иллюстрации описанного способа обработки атрибутов рассмотрим изображение расширенного вывода в грамматике Г 5. 5. Такой вывод включает не только терминальные, нетерминальные и операционные символы, но и атрибуты, значения которых еще не определены. Для отображения связей между атрибутами, соответствующих операциям присваивания, воспользуемся линейным выводом. Такой вывод строится следующим образом:

а) Переместим атрибуты с позиции индексов в строку и поместим их непосредственно за соответствующим символом грамматики.

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

в) Множественным копирующим правилам поставим в соответствие в выводимой цепочке последовательность дуг, связывающих источник с приемниками.

г) Если в процессе вывода атрибут получает значение, то это значение запишем в выводимую цепочку вместо имени атрибута, а соответствующую дугу удалим.

д) При замене нетерминального символа в выводимой цепочке он удаляется, но его атрибуты должны остаться на месте.

Линейный вывод цепочки с/1+с/2*с/3 в грамматике Г 5. 5 можно представить в следующем виде:

    В приведенном выводе атрибут каждого заменяемого нетерминального символа сохраняется в цепочке вывода. Подстановка символа с определенным значением атрибута при выполнении шагов 6, 9, 10 приводит к исключению из цепочки вывода всех промежуточных атрибутов, определяющих пути передачи значения. Шаги 11 и 12 введены только для того, чтобы показать, как операционные символы влияют на определение значений атрибутов. В общем случае эти шаги можно совместить с шагом 10. Пред.Страница След.СтраницаРаздел Содержание

 

Соседние файлы в папке SECTION5