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

L-атрибутные грамматики особый тип грамматики атрибутов.[1] Они позволяют оценивать атрибуты за один проход слева направо в глубину абстрактное синтаксическое дерево. В результате оценка атрибутов в грамматиках с L-атрибутами может быть легко включена в нисходящий синтаксический анализ.

Синтаксически ориентированное определение является L-атрибутом, если каждое унаследованный атрибут на правой стороне зависит только от

  1. атрибуты символов
  2. унаследованные атрибуты (но не его синтезированные атрибуты)

Каждое определение, ориентированное на синтаксис с S-атрибутами, также является L-атрибутом.

Реализация определений с L-атрибутами в синтаксических анализаторах Bottom-Up требует переписывания определений с L-атрибутами в схемы перевода.

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

Либо «унаследованные атрибуты», либо «синтезированные атрибуты», связанные с появлением символа. .

Рекомендации

  1. ^ Кнут, Дональд Э. (Июнь 1968 г.). «Семантика контекстно-свободных языков». Математическая теория систем. 2 (2): 127–145. CiteSeerX  10.1.1.455.1434. Дои:10.1007 / BF01692511. ISSN  0025-5661. S2CID  5182310. QID  56672530.