Jump to content

Абстрактный семантический граф

В информатике абстрактный семантический граф ( ASG ) или граф терминов — это форма абстрактного синтаксиса , в которой выражение формального вершины языка или языка программирования представлено графом , выражения которого являются подтермами . ASG находится на более высоком уровне абстракции, чем абстрактное синтаксическое дерево (или AST), которое используется для выражения синтаксической структуры выражения или программы .

ASG более сложны и кратки, чем AST, поскольку они могут содержать общие подтермины (также известные как «общие подвыражения»). [1] Абстрактные семантические графы часто используются компиляторами в качестве представления промежуточного для хранения результатов выполнения исключения общих подвыражений в абстрактных синтаксических деревьях . AST представляют собой деревья и поэтому не способны представлять общие термины. ASG обычно представляют собой направленные ациклические графы (DAG) , хотя в некоторых приложениях графы содержат циклы. [ нужны разъяснения ] может быть разрешено. Например, граф, содержащий цикл, может использоваться для представления рекурсивных выражений, которые обычно используются в языках функционального программирования в качестве конструкций без цикла итерационных . Изменяемость этих типов графов изучается в области переписывания графов .

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

Деревья абстрактного синтаксиса не могут совместно использовать узлы подвыражений, поскольку узел в правильном дереве не может иметь более одного родительского узла. Хотя эта концептуальная простота привлекательна, она может достигаться за счет избыточного представления и, в свою очередь, возможного неэффективного дублирования вычислений идентичных терминов. По этой причине ASG часто используются в качестве промежуточного языка на последующем этапе компиляции для абстрактного построения синтаксического дерева посредством синтаксического анализа.

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

Пример: Рефакторинг кода [ править ]

Например, рассмотрим случай рефакторинга кода . Чтобы представить реализацию функции, которая принимает входной аргумент, полученному параметру обычно присваивается произвольное отдельное имя в исходном коде, чтобы на него можно было ссылаться. Абстрактное представление этой концептуальной сущности, экземпляр «аргумента функции», скорее всего, будет упомянуто в сигнатуре функции, а также один или несколько раз в теле кода реализации. Поскольку функция в целом является родительской как для ее заголовка или информации «подписи», так и для ее тела реализации, AST не сможет использовать один и тот же узел для совместной идентификации многократного использования или появления объекта аргумента. Это решается за счет DAG-природы ASG. Ключевое преимущество наличия единого, отличного идентификатора узла для любого данного элемента кода заключается в том, что свойства каждого элемента по определению сохраняются уникально. Это упрощает операции рефакторинга, поскольку для каждого конкретного экземпляра свойства существует ровно одна экзистенциальная связь. Если разработчик решает изменить значение свойства, такое как «имя» любого элемента кода («аргумент функции» в этом примере), ASG по своей сути предоставляет это значение ровно в одном месте, и из этого следует, что любые такие изменения свойства неявно, тривиально и немедленно распространяется по всему миру.

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

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

  1. ^ Гарнер, Ричард (2011). «Абстрактный взгляд на синтаксис с возможностью совместного использования». Журнал логики и вычислений . 22 (6): 1427–1452. arXiv : 1009.3682 . дои : 10.1093/logcom/exr021 . Понятие графа терминов кодирует усовершенствование индуктивно генерируемого синтаксиса, в котором уделяется внимание совместному использованию и исключению подтерминов.
  2. ^ Пламп, Д. (1999). Эриг, Хартмут ; Энгельс, Г.; Розенберг, Гжегож (ред.). Справочник по грамматикам графов и вычислениям путем преобразования графов: приложения, языки и инструменты . Том. 2. Мировая научная. стр. 9–13. ISBN  9789810228842 .
  3. ^ Барендрегт, HP; ван Экелен, MCJD; Глауэрт, JRW; Кеннауэй-младший; Пласмейер, MJ; Спи, МР (1987). «Переписывание графа терминов». PARLE Параллельные архитектуры и языки Европы . Конспекты лекций по информатике. Том. 259. стр. 141–158. дои : 10.1007/3-540-17945-3_8 . ISBN  978-3-540-17945-0 . {{cite book}}: |journal= игнорируется ( помогите )

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


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b61b763932edbd8bfe44b7c6c7a928d2__1704984540
URL1:https://arc.ask3.ru/arc/aa/b6/d2/b61b763932edbd8bfe44b7c6c7a928d2.html
Заголовок, (Title) документа по адресу, URL1:
Abstract semantic graph - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)