~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ C5D9AA2FE66F9B139B06410F920060FF__1707785340 ✰
Заголовок документа оригинал.:
✰ Warren Abstract Machine - Wikipedia ✰
Заголовок документа перевод.:
✰ Абстрактная машина Уоррена — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Warren_Abstract_Machine ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/c5/ff/c5d9aa2fe66f9b139b06410f920060ff.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/c5/ff/c5d9aa2fe66f9b139b06410f920060ff__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 10:39:11 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 13 February 2024, at 03:49 (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

Абстрактная машина Уоррена

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

В 1983 году Дэвид Уоррен разработал абстрактную машину для выполнения Пролога , состоящую из архитектуры памяти и набора команд . [1] [2] [3] Эта конструкция стала известна как Абстрактная машина Уоррена (WAM) и стала де-факто стандартной целью для компиляторов Пролога .

Цель [ править ]

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

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

Области памяти [ править ]

WAM имеет следующие области памяти:

  • Глобальный стек или куча , используемый для хранения составных терминов.
  • Локальный стек для фреймов окружения и точек выбора.
  • След для записи того , какие привязки переменных следует отменить при возврате.

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

Вот фрагмент кода Пролога:

 девочка  (  Салли  ). 
   девушка  (  Джейн  ). 
 
   мальчик  (  Б  )   :-   \+   девочка  (  Б  ). 

Компилятор Пролога на основе WAM скомпилирует это в инструкции WAM, подобные следующим:

 предикат  (  девушка  /  1  )  : 
     switch_on_term  (  2  ,  1  ,  неудача  ,  неудача  ,  неудача  ), 
  метка  (  1  )  :   switch_on_atom  ([(  Салли  ,  3  ), (  Джейн  ,  5  )]) 
  метка  (  2  )  :   try_me_else  (  4  ) 
  метка  (  3  )  :   get_atom  (  салли  ,  0  ) 
            продолжить 
  метка  (  4  )  :   доверие_мне_else_fail 
  метка  (  5  )  :   get_atom  (  джейн  ,  0  ) 
            продолжения 
 
  предикат  (  мальчик  /  1  )  : 
     get_variable  (  x  (  1  ),  0  ) 
     put_structure  (  девушка  /  1  ,  0  ) 
     unify_local_value  (  x  (  1  )) 
     выполнить  ((  \+  )  /  1  )]) 

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

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

  1. ^ Дэвид Х.Д. Уоррен (октябрь 1983 г.). Абстрактный набор команд Пролога (PDF) . Менло-Парк, Калифорния, США: Центр искусственного интеллекта при SRI International . Архивировано (PDF) из оригинала 19 июня 2022 г.
  2. ^ Хасан Айт-Каджи (18 февраля 1999 г.). Абстрактная машина Уоррена: учебная реконструкция (PDF) . Архивировано из оригинала 13 февраля 2003 г. {{cite book}}: CS1 maint: неподходящий URL ( ссылка )
  3. ^ Хасан Айт-Качи. «Абстрактная машина Уоррена: реконструкция учебника; книга, опечатки и слайды» . Архивировано из оригинала 19 января 2022 года . Проверено 7 марта 2011 г.
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: C5D9AA2FE66F9B139B06410F920060FF__1707785340
URL1:https://en.wikipedia.org/wiki/Warren_Abstract_Machine
Заголовок, (Title) документа по адресу, URL1:
Warren Abstract Machine - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)