~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 6BA7A6B6B75816C8BE551646CA40DFC9__1709954100 ✰
Заголовок документа оригинал.:
✰ Attribute grammar - Wikipedia ✰
Заголовок документа перевод.:
✰ Грамматика атрибутов — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Attribute_grammar ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/6b/c9/6ba7a6b6b75816c8be551646ca40dfc9.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/6b/c9/6ba7a6b6b75816c8be551646ca40dfc9__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 10:46:23 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 9 March 2024, at 06:15 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Грамматика атрибутов — Википедия Jump to content

Грамматика атрибутов

Из Википедии, бесплатной энциклопедии

Грамматика атрибутов — это формальный способ дополнить формальную грамматику обработкой семантической информации. Семантическая информация хранится в атрибутах , связанных с терминальными и нетерминальными символами грамматики. Значения атрибутов являются результатом правил оценки атрибутов, связанных с постановкой грамматики. Атрибуты позволяют передавать информацию из любого места абстрактного синтаксического дерева в любое другое место контролируемым и формальным способом. [1]

Каждая семантическая функция имеет дело с атрибутами символов, встречающимися только в одном продукционном правиле: и параметры семантической функции, и ее результат являются атрибутами символов из одного конкретного правила. Когда семантическая функция определяет значение атрибута символа в левой части правила, атрибут называется синтезированным ; в противном случае его называют унаследованным . [2] Таким образом, синтезированные атрибуты служат для передачи семантической информации вверх по дереву синтаксического анализа, а унаследованные атрибуты позволяют передавать значения от родительских узлов вниз и по всему синтаксическому дереву.

В простых приложениях, таких как вычисление арифметических выражений, грамматика атрибутов может использоваться для описания всей задачи, которую необходимо выполнить, помимо прямого анализа; в сложных системах, например, при создании инструмента языкового перевода, такого как компилятор, его можно использовать для проверки семантических проверок, связанных с грамматикой, представляющей правила языка, не указанные явно в определении синтаксиса. Он также может использоваться анализаторами или компиляторами для перевода синтаксического дерева непосредственно в код для какой-либо конкретной машины или на какой-либо промежуточный язык .

История [ править ]

Грамматики атрибутов были изобретены Дональдом Кнутом и Питером Вегнером . [3] Хотя Дональду Кнуту приписывают общую концепцию, Питер Вегнер изобрел унаследованные атрибуты во время разговора с Кнутом. Некоторые эмбриональные идеи восходят к [3] работам Эдгара Т. «Неда» Айронса, [4] автор ИМП .

Пример [ править ]

Ниже приведена простая контекстно-свободная грамматика , которая может описать язык, состоящий из умножения и сложения целых чисел.

 Выраж  Выраж  +  Терм 
  Выраж  Терм 
  Термин  Терм  *  Фактор 
  Термин  Фактор 
  Фактор  → "("  Выраж  ")" 
   Фактор  целое число 

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

 Выражение  1  Выражение  2  +  Термин  [  Выражение  1.значение  =  Выражение  2.значение  +  Термин.значение  ] 
   Выражение  Срок  [  Выражение.значение  =  Термин.значение  ] 
   Термин  1  Термин  2  *  Фактор  [  Значение термина  1  =  Значение термина  2  *  Значение фактора  ] 
   Термин  Фактор  [  Термин.значение  =  Фактор.значение  ] 
   Коэффициент  → "("  Выражение  ")" [  Фактор.значение  =  Выраж.значение  ] 
   Фактор  целое число  [  Фактор.значение  = strToInt(  целое  число.str)] 
 

Синтезированные атрибуты [ править ]

Синтезированный атрибут вычисляется на основе значений атрибутов дочерних элементов. Поскольку сначала необходимо вычислить значения дочерних элементов, это пример распространения снизу вверх. [5] Чтобы формально определить синтезированный атрибут, пусть быть формальной грамматикой, где

  • это набор нетерминальных символов
  • это набор терминальных символов
  • это набор постановок
  • является отличительным или стартовым символом

Тогда, учитывая строку нетерминальных символов и имя атрибута , является синтезированным атрибутом, если соблюдены все три условия:

  • (т.е. это одно из правил грамматики)
  • (т.е. каждый символ в теле правила является либо нетерминальным, либо терминальным)
  • , где (т.е. значение атрибута является функцией применяется к некоторым значениям символов в теле правила)

Унаследованные атрибуты [ править ]

в Унаследованный атрибут узле дерева синтаксического анализа определяется с использованием значений атрибута в родительском или одноуровневом узлах. Унаследованные атрибуты удобны для выражения зависимости конструкции языка программирования от контекста, в котором она появляется. Например, мы можем использовать унаследованный атрибут, чтобы отслеживать, появляется ли идентификатор слева или справа от присваивания, чтобы решить, нужен ли адрес или значение идентификатора. В отличие от синтезированных атрибутов, унаследованные атрибуты могут принимать значения от родителя и/или дочерних элементов. Как и в следующей постановке,

С → АВС

где A может получать значения от S, B и C. B может принимать значения от S, A и C. Аналогично, C может принимать значения от S, A и B.

Специальные типы грамматик атрибутов [ править ]

См. также [ править ]

Ссылки [ править ]

  1. ^ Кнут 1968 , с. 134.
  2. ^ Кнут 1968 , с. 132.
  3. ^ Перейти обратно: а б Д. Е. Кнут: Происхождение атрибутивных грамматик . Материалы международной конференции по грамматикам атрибутов и их приложениям (1990), LNCS, vol. 461 , 1–12.
  4. ^ "Основной" .
  5. ^ Кнут 1968 , с. 130.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 6BA7A6B6B75816C8BE551646CA40DFC9__1709954100
URL1:https://en.wikipedia.org/wiki/Attribute_grammar
Заголовок, (Title) документа по адресу, URL1:
Attribute grammar - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)