Языки программирования и теория компиляции 4: Атрибутные грамматики
Атрибутные грамматики — это расширение синтаксических грамматик на область семантики, которое позволяет осмысливать конструкции в зависимости от окружающего контекста. В этом случае значения атрибутов передаются как вверх, так и вниз по дереву разбора. Атрибутная транслирующая грамматика — это транслирующая грамматика, к которой добавляются следующие определения: Каждый входной символ — символ действия или нетерминал — имеет конечное множество атрибутов, и каждый атрибут имеет бесконечное множество допустимых значений. Все атрибуты нетерминалов и символов действия делятся на наследуемые и синтезируемые. Правила вычисления наследуемых атрибутов: каждому вхождению наследуемого атрибута в правую часть продукции сопоставляется правило вычисления значения этого атрибута как функции некоторых других атрибутов символов, входящих в правую часть продукции. Правила вычисления синтезируемых атрибутов: каждому вхождению синтезируемого нетерминального атрибута в левую часть продукции сопоставляется правило вычисления значения этого атрибута как функции от некоторых других атрибутов, входящих в левую и правую части продукции. Атрибутные транслирующие грамматики используются для определения атрибутов деревьев вывода, затем атрибутных последовательностей актов и атрибутных переводов.
Атрибутные грамматики — это расширение синтаксических грамматик на область семантики, которое позволяет осмысливать конструкции в зависимости от окружающего контекста. В этом случае значения атрибутов передаются как вверх, так и вниз по дереву разбора. Атрибутная транслирующая грамматика — это транслирующая грамматика, к которой добавляются следующие определения: Каждый входной символ — символ действия или нетерминал — имеет конечное множество атрибутов, и каждый атрибут имеет бесконечное множество допустимых значений. Все атрибуты нетерминалов и символов действия делятся на наследуемые и синтезируемые. Правила вычисления наследуемых атрибутов: каждому вхождению наследуемого атрибута в правую часть продукции сопоставляется правило вычисления значения этого атрибута как функции некоторых других атрибутов символов, входящих в правую часть продукции. Правила вычисления синтезируемых атрибутов: каждому вхождению синтезируемого нетерминального атрибута в левую часть продукции сопоставляется правило вычисления значения этого атрибута как функции от некоторых других атрибутов, входящих в левую и правую части продукции. Атрибутные транслирующие грамматики используются для определения атрибутов деревьев вывода, затем атрибутных последовательностей актов и атрибутных переводов.
