Грамматики с L-атрибутами - это особый тип грамматик с атрибутами . [1] Они позволяют оценивать атрибуты за один обход абстрактного синтаксического дерева слева направо в глубину . В результате оценка атрибутов в грамматиках с L-атрибутами может быть удобно включена в нисходящий синтаксический анализ .
Определение, ориентированное на синтаксис, является L-атрибутом, если каждый унаследованный атрибут на правой стороне зависит только от
- атрибуты символов
- унаследованные атрибуты (но не его синтезированные атрибуты)
Каждое определение, ориентированное на синтаксис с S-атрибутами, также имеет L-атрибут.
Реализация определений с L-атрибутами в синтаксических анализаторах Bottom-Up требует переписывания определений с L-атрибутами в схемы перевода.
Многие языки программирования имеют L-атрибуцию. Специальные типы компиляторов , узкие компиляторы, основаны на некоторой форме грамматики с L-атрибутами. Это строгий надмножество грамматик с S-атрибутами . Используется для синтеза кода.
Либо «унаследованные атрибуты», либо «синтезированные атрибуты», связанные с появлением символа. .
Рекомендации
- ^ Кнут, Дональд Э. (июнь 1968 г.). «Семантика контекстно-свободных языков». Математическая теория систем . 2 (2): 127–145. CiteSeerX 10.1.1.455.1434 . DOI : 10.1007 / BF01692511 . ISSN 0025-5661 . S2CID 5182310 . QID 56672530 .