Jump to content

Сравнение реализаций Пролога

Следующее сравнение реализаций Пролога дает справку по относительным наборам функций и производительности различных реализаций Пролог языка программирования . Всестороннее обсуждение наиболее важных систем Пролога представлено в статье, опубликованной в юбилейном выпуске журнала «Теория и практика логического программирования» (TPLP), посвященном 50-летию Пролога. [1]

Портативность

[ редактировать ]
Реализации Пролога и их взаимное влияние

Существуют реализации Пролога, с разным синтаксисом и разной семантикой (например, Visual Prolog). радикально отличающиеся [2] и подсообщества сформировались вокруг различных реализаций. [2]

Код, который строго соответствует основному языку ISO-Prolog, переносим между реализациями, совместимыми с ISO. Однако стандарт ISO для модулей является расширением, которое не было полностью принято в большинстве систем Пролога. [2] [1]

Факторы, которые могут отрицательно повлиять на переносимость, включают: использование ограниченной и неограниченной целочисленной арифметики, дополнительные типы, такие как строковые объекты, расширенные числовые типы (рациональные, комплексные), расширения функций, такие как Unicode , потоки и таблицы. [3] Использование библиотек, недоступных в других реализациях, и организация библиотек: [2]

В настоящее время способы распространения предикатов по библиотекам и встроенным системам сильно различаются. [...] К счастью, есть лишь несколько случаев, когда мы находим предикаты с одинаковым именем, но разной семантикой (например, delete/3)

Основные особенности

[ редактировать ]
Платформа Функции Инструментарий Механика Пролога
Имя ТЫ Лицензия
Родная графика
Скомпилированный код
Юникод
Объектно-ориентированный
Собственный контроль ОС
Автономный исполняемый файл
C-интерфейс [а]
Java-интерфейс [а]
Интерактивный переводчик
Отладчик
Профилировщик кода
Синтаксис
АллегроПролог Юникс , Windows , Mac OS X Собственный (доступна ограниченная бесплатная версия) Да Да Да Да, через Лисп Да Да, через Лисп Да, через Лисп Да Да Да, через Лисп S-выражения. Полная интеграция с Common Lisp.
БПролог Юникс , Windows , Mac OS X Собственный (бесплатен для некоммерческого использования) Да Да Да Да Да Да Да Да Да Да ISO-Prolog, плюс обработка событий, CLP(FD) и составление таблиц
ПРИВЕТ Юникс , Windows , Mac OS X Лицензионная лицензия , LGPL Да Да Да Да Да Да Да Да Да ISO-Пролог плюс расширения
DOS-Пролог [4] MS-DOS Собственный Да Да Да Да Да Да Эдинбургский Пролог
Затмение Linux , Windows , Солярис , macOS МПЛ Да Да Да Да Да Да Да Расширенный Пролог, мультидиалект, включая ISO
GNU Пролог Юникс , Windows , Mac OS X Лицензионная лицензия , LGPL Да Да Да Да Да Да ISO-Пролог
JIПролог JVM , Андроид AGPL (доступна коммерческая поддержка) Да Да Да через Java Да Да через Java Да Да Да ISO-Пролог
JLog [5] JVM лицензия GPL Да Да Да Да ISO-Пролог
JScriptLog [5] Веб-браузер лицензия GPL Да ISO-Пролог
jТриолог [6] JVM LGPL Да Да Да Да ISO-Пролог
WIN-Пролог [7] Окна Собственный Да Да Да Да Да Да Да Да Да Да Да Эдинбургский Пролог с расширениями
Открыть Пролог MacOS Бесплатное ПО Да
Поплог Пролог Linux (32- и 64-разрядные версии), Unix , Windows Бесплатно с открытым исходным кодом Только через POP-11 , в Linux Да Да Да Да Да Да Эдинбургский Пролог с интерфейсами к Poplog Common Lisp и Pop-11.
Скрайер Пролог Линукс , Виндовс , МакОС Лицензия БСД Да Да ISO-Пролог
SICStus Пролог Юникс , Линукс , Windows , macOS Собственный Да Да Да Да Да Да Да Да Да Да Да ISO-Пролог
Клубничный пролог Винда , Юникс Бесплатное ПО Да Да Да Да Да Не ISO-Пролог + расширения
SWI-Пролог Юникс , Линукс , Windows , macOS Лицензия БСД Да Да Да Да Да Да Да Да Да Да ISO-Пролог, Эдинбургский Пролог
туПролог JVM , Андроид LGPL Да Да Да Да Да Да ISO-Пролог
Визуальный Пролог Окна Бесплатное ПО Да Да Да Да Да Да Да Да Да
XSB Пролог Linux , Windows , Солярис , macOS LGPL Да Да Да Да Да Да Да Да Да ISO-Пролог, таблица WFS
YAP-Prolog Linux , Windows , Solaris , Mac OS X , HP-UX GPL или Artistic (выбор пользователя) Да Да Да Да Да Да Да Да Совместимость с Эдинбургом, ISO-Prolog, Quintus и SICStus Prolog
[ редактировать ]
связанные с ОС Интернет-связанный
Имя Условная компиляция Розетки Многопоточность Таблица HTTP-клиент HTTP-сервер HTML-парсер РДФ Тройной магазин
БПролог Да
ПРИВЕТ Да Да Да Да Да Да Да
Затмение Да Да Да Да Да
GNU Пролог Да
WIN-Пролог Да Да Да Да
Скрайер Пролог Да Да Да Да Да
SICStus Пролог Да Да Да
SWI-Пролог Да Да Да Да Да Да Да Да
Визуальный Пролог Да Да Да Да Да Да
XSB Да Да Да Да Да
YAP-Prolog Да Да Да Да

Статический анализ

[ редактировать ]
Имя Тип проверки Проверка определенности Проверка шаблона звонка
ПРИВЕТ Да Да Да
GNU Пролог
SICStus Пролог Да
SWI-Пролог Да
Визуальный Пролог Да Да Да
XSB
YAP-Prolog

Оптимизации

[ редактировать ]
Имя Оптимизация хвостового вызова Удаление точки выбора Обрезка окружающей среды Индексация «точно в срок»
ПРИВЕТ Да Да Да ?
Затмение Да Да Да несколько аргументов (время компиляции)
GNU Пролог Да Да Да
SICStus Пролог Да Да Да
SWI-Пролог Да Да Да Да
Визуальный Пролог Да (время компиляции) Да (время компиляции) Н/Д Н/Д (время компиляции)
XSB Да Да Да ?
YAP-Prolog Да Да Да Да

Выпускать

[ редактировать ]
Имя Версия Дата
АллегроПролог 1.1.2 2018-12-12
БПролог 8.1 2014-02-23
JIПролог 4.1.7.1 2021-08-26
ПРИВЕТ 1.22 2022-09-28
DOS-Пролог 8.0
Затмение 7.1 2023-01-01
GNU Пролог 1.5.0 2023-02-21
JLog 1.3.6 2007-09-13
JScriptLog 0.7.5 бета 2007-09-10
jТриолог
WIN-Пролог 8.0 2022-07-14
Открыть Пролог
Поплог Пролог V16 2020-01-06
Скрайер Пролог 0.9.3 2023-11-02
SICStus Пролог 4.9.0 2023-12-18
Клубничный пролог 6.1 2023-08-23
SWI-Пролог 9.1.18 2023-11-01
туПролог 2П-Кт 0.31.18 2023-10-24
Визуальный Пролог 10, стр. 1000 2021-04-15
XSB Пролог 5.0 2022-05-15
YAProlog 7.1.0 2020-12-19

Примечания

[ редактировать ]
  1. ^ Перейти обратно: а б Интерфейс C/Java также можно использовать для управления графикой и ОС.
  1. ^ Перейти обратно: а б Филипп Кёрнер; Майкл Леушел; Жоао Барбоза; Витор Сантос Коста; Вероника Даль; Мануэль В. Эрменегильдо; Хосе Ф. Моралес; Ян Вилемакер; Дэниел Диас; Сальвадор Абреу; Джованни Чиатто (ноябрь 2022 г.), «Пятьдесят лет Пролога и далее», Теория и практика логического программирования , 22 (6), doi : 10.1017/S1471068422000102 , hdl : 10174/33387
  2. ^ Перейти обратно: а б с д Вилемейкер, Дж.; Коста, СУДС (2011). «О переносимости приложений Пролога». Практические аспекты декларативных языков . Конспекты лекций по информатике. Том. 6539. стр. 69–83. CiteSeerX   10.1.1.1030.9396 . дои : 10.1007/978-3-642-18378-2_8 . ISBN  978-3-642-18377-5 .
  3. ^ Ян Вилемейкер и Витор Сантос Коста: Переносимость программ на Прологе: теория и тематические исследования . Семинар CICLOPS-WLPE 2010. Архивировано 16 июля 2010 г. в Wayback Machine .
  4. ^ «ДОС-Пролог 8.0» . Партнеры по логическому программированию . 5 ноября 2023 г.
  5. ^ Перейти обратно: а б «Домашняя страница JLog» . jlogic.sourceforge.net . Проверено 3 ноября 2023 г.
  6. ^ «Jtrolog — Java.net» . 13 ноября 2012 г. Архивировано из оригинала 13 ноября 2012 г. Проверено 3 ноября 2023 г.
  7. ^ «ВИН-Пролог 8.0» . Партнеры по логическому программированию . 5 ноября 2023 г.
  8. ^ Б. Демоен и П. Нгуен, О ненужных различиях в производительности между реализациями Пролога, Материалы коллоквиума по реализации систем ограничения и логического программирования (CICLOPS 2001)
  9. ^ Боте, К. (1990). «Набор тестов для пространства прологов» . Уведомления ACM SIGPLAN . 25 (12): 54–60. дои : 10.1145/122193.122197 .
  10. ^ Обзор производительности XSB (1993)
  11. ^ Демоен, Б.; Нгуен, Польша; Вандегинсте, Р. (2002). «Копирование сборки мусора для WAM: отмечать или не отмечать?». Логическое программирование . Конспекты лекций по информатике. Том. 2401. стр. 194–208. CiteSeerX   10.1.1.13.2586 . дои : 10.1007/3-540-45619-8_14 . ISBN  978-3-540-43930-1 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3e7070a77cdc408168a9f569c182e8ed__1718041800
URL1:https://arc.ask3.ru/arc/aa/3e/ed/3e7070a77cdc408168a9f569c182e8ed.html
Заголовок, (Title) документа по адресу, URL1:
Comparison of Prolog implementations - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)