Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Доки / T_ALG / 1 / FOMICHEV / Section5 / part534

.html
Скачиваний:
7
Добавлен:
17.04.2013
Размер:
3.67 Кб
Скачать

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

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

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

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

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

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

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

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

 

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