Что означает S-атрибутированная и L-атрибутированная грамматика? - PullRequest
11 голосов
/ 17 марта 2010

Я читаю книгу компиляторов, и я немного сбит с толку, когда говорится, что "грамматика S-атрибута - это тоже грамматика L-атрибута". Не мог понять Может кто-то прояснить (пример должен быть отличным). Спасибо.

Ответы [ 2 ]

14 голосов
/ 17 марта 2010

L-атрибутированная грамматика

L-приписанные грамматики - это особый тип атрибутных грамматик. Они позволяют оценивать атрибуты одним обходом абстрактного синтаксического дерева слева направо. В результате оценка атрибута в L-атрибутивных грамматиках может быть удобно включена в синтаксический анализ сверху вниз. Многие языки программирования являются L-атрибутированными. Специальные типы компиляторов, узкие компиляторы, основаны на некоторой форме L-атрибутивной грамматики. Они сопоставимы с S-атрибутивными грамматиками. Используется для синтеза кода.

S-атрибутированная грамматика

S-атрибутные грамматики - это класс грамматик атрибутов, для которых характерно отсутствие унаследованных атрибутов. Унаследованные атрибуты, которые должны передаваться от родительских узлов к дочерним узлам абстрактного синтаксического дерева во время семантического анализа процесса синтаксического анализа, представляют собой проблему для анализа снизу вверх, поскольку при анализе снизу вверх родительские узлы абстрактного синтаксиса елки создаются после создания всех их детей. Оценка атрибута в S-атрибутных грамматиках может быть удобно включена как при синтаксическом анализе, так и при анализе снизу вверх. Yacc основан на S-атрибутном подходе.

Любая S-атрибутная грамматика также является L-атрибутной грамматикой.

В L-атрибутивных грамматиках оценка атрибута может выполняться при обходе слева направо. Поскольку в S-атрибутных грамматиках атрибуты не наследуются, это не мешает вам делать именно это. Таким образом, можно сказать, что S-атрибутированная грамматика соответствует этой характеристике L-грамматики.

3 голосов
/ 10 апреля 2016

Просто S-атрибутная грамматика - это грамматика, которая имеет строго синтезированный тип грамматических средств Только имеющий атрибут Value во всем дереве разбора

, где в качестве L-Attributed грамматики может быть как синтезированная, так и унаследованная грамматика с некоторымииз правил, как тот, который имеет передачу наследства всегда слева направо.Я думаю, что это поможет вам.

...