Существует ли эталонная реализация ISO-Prolog?
У Java есть эталонная реализация.
Есть ли у ISO-Prolog эталонная реализация?
У меня есть INCITS/ISO/IEC 13211-1:1995 (R 2007), поэтому нет необходимости это предлагать.
РЕДАКТИРОВАТЬ
Примечания: оценка соответствия I: синтаксис
4 ответа
Позвольте мне сначала уточнить, что вы подразумеваете под эталонной реализацией. Вы имеете в виду пример реализации, которая считается действительной интерпретацией стандарта. Никогда не ясно, какое нормативное значение может иметь такая реализация - подумайте об ошибке синтаксиса Java float, которая сделала много системных циклов.
Для ISO Prolog нет эталонной реализации. Как и в случае с C, C++ или любым другим стандартизированным языком программирования ISO/IEC. Обратите внимание, что Java не стандартизирована ни одним органом по стандартизации, таким как ISO, IEC, ITU или CEN, ни каким-либо национальным органом, таким как ANSI; а скорее одной компанией. И именно эта компания обеспечивает эталонную реализацию.
Кроме того, Пролог существует с 1972 года - задолго до того, как произошла какая-либо стандартизация. И это был первый язык в своем роде и парадигме. Вскоре он разделился на несколько разных диалектов с несовместимым синтаксисом (Пролог 1, Эдинбург, Пролог II и т. Д.). 1984 г. был распространен один из первых связанных с стандартом документов - проект предлагаемого стандарта для прогнозируемых прологов предикатов, разработанный Ричардом О'Кифом. BSI начал в 1984 году; AFNOR 1985. В 1987 году начался процесс ISO, в 1995 году был выпущен ISO/IEC 13211-1.
Сравните это с Java, который развивался из предыдущих языков, таких как C, C++, а также других объектно-ориентированных языков и многое унаследовал от них. Он был разработан совсем по-другому, когда компания жестко защищала язык от всевозможных отклонений. Подумайте об этом: даже копии руководств было запрещено предлагать в Интернете.
В любом случае системы Prolog с ближайшим соответствием:
SICStus Prolog 4.3 beta 1. Не известно, что неправильно истолкован какой-либо действительный текст Prolog. Полная поддержка Cor.1, Cor.2.
GNU Prolog 1.4.4 ( версия git). Не известно, что неправильно прочитал любой действительный текст Пролога. Некоторые отличия в арифметике. В противном случае Cor.1, Cor.2.
IF / Prolog V5. Единственная система, предлагающая строго соответствующий режим (см. ISO/IEC 13211-1:1995, подраздел 5.1 e).
Конкретное сравнение по синтаксису (чтение и запись) дает вам представление о том, что вы можете ожидать от этих и других реализаций.
Еще одна реализация, которая обеспечивает строго соответствующий режим, - это ECLiPSe.
Используйте это с -L iso_strict
опция командной строки.
Цитирование из заявления о соответствии:
ECLiPSe обеспечивает реализацию Стандартного Пролога, как определено в ИСО / МЭК 13211-1 (Информационные технологии, Языки программирования, Пролог, Часть 1, Общее ядро, 1995) и технических исправлений ИСО / МЭК 13211-1 ТС1 (2007) и ТС2 (2012).
Нет. Но GNU Prolog довольно близко следует стандарту ISO Prolog Core. Также обратите внимание, что это обеспечивает strict_iso
флаг.
Есть и другие компиляторы Prolog, которые обеспечивают хорошее соответствие стандартам.
Непосредственно из руководства SICStus Prolog, 4.3.0:
SICStus Prolog полностью соответствует международному стандарту ISO/IEC 13211-1 (PROLOG: Часть 1 - Общее ядро), дополненному Техническими исправлениями 1 и 2.
Чтобы помочь программистам, которые хотят писать стандартные совместимые программы, встроенные предикаты и арифметические функторы, являющиеся частью стандарта ISO Prolog, помечены [ISO] в этом руководстве.
Подумайте: необходимость показать соответствие выпущенному комитетом техническому документу 1995 года, кроме как в общем, трудно обосновать, если только вы не хотите запускать большой объем унаследованного кода, который по какой-либо причине не может быть обновлен. Вы хотите работать с использованием современных идей и функций, а не соответствовать преждевременным нормативным справкам из древних времен (когда рабочие станции Sun имели 120 МГц ЦП и 24 МБ ОЗУ).
См. Также главу " Позиционирование SWI-Prolog" в руководстве SWI Prolog.
Чтобы освободить людей от поиска, список:
- ISO / IEC 13211-1: 1995 - Информационные технологии. Языки программирования. Пролог. Часть 1. Общее ядро
- ISO/IEC 13211-2:2000 - Информационные технологии. Языки программирования. Пролог. Часть 2. Модули
- ISO/IEC 13211-1/Cor1:2007 - Информационные технологии. Языки программирования. Пролог. Часть 1. Общее ядро. Исправление (скачать бесплатно)
- ISO / IEC 13211-1 / Cor2: 2012 - Информационные технологии. Языки программирования. Пролог. Часть 1. Общее ядро. Исправление 2 (скачать бесплатно)