Атрибутивная грамматика
-
Определение и применение атрибутивной грамматики
- Атрибутивная грамматика дополняет формальную грамматику семантической обработкой.
- Атрибуты хранят семантическую информацию и связаны с терминальными и нетерминальными символами.
- Значения атрибутов вычисляются на основе правил оценки атрибутов.
- Атрибуты позволяют передавать информацию между узлами в синтаксическом дереве.
-
Семантические функции и типы атрибутов
- Семантические функции работают с атрибутами, связанными с одним производственным правилом.
- Атрибуты могут быть синтезированными (определяются в правиле) или унаследованными (определяются в родительских узлах).
- Синтезированные атрибуты передают семантику вверх по дереву, унаследованные — вниз.
-
Примеры и история
- Приведена простая грамматика для описания арифметических выражений.
- Атрибутивные грамматики изобретены Дональдом Кнутом и Питером Вегнером.
- Эдгар Т. «Нед» Айронс внес вклад в разработку атрибутивных грамматик.
-
Специальные типы атрибутивных грамматик
- Грамматики с L-атрибутами, LR-атрибутами и ECLR-атрибутами для оптимизации оценки унаследованных атрибутов.
- S-атрибутивные грамматики используют только синтезированные атрибуты.
-
Рекомендации и внешние ссылки
- Статья предлагает обзор атрибутивных грамматик и их применение в различных областях, включая функциональное программирование.
- Упоминаются системы компиляции грамматики атрибутов Ox и Silver, а также их использование в Unix и Solaris.
Полный текст статьи: