2013-11-21 5 views
4

Java имеет reference implementation.Существует ли эталонная реализация ISO-Prolog?

Имеет ли ISO-Prolog ссылочную реализацию?

У меня есть INCITS/ISO/IEC 13211-1:1995 (R 2007), так что не нужно предлагать это.

EDIT

отметить: Conformity Assessment I: Syntax

+0

Учтите, что Java развилась с Java 1.0 в 1995 году до Java 8.0 сейчас, где поскольку ISO Prolog по-прежнему является ISO Prolog. Стандарты хороши для управления, а не для языков программирования. –

+0

Также интересен: [Является ли стандарт ISO Prolog серьезно воспринятым?] (Http://www.cs.unipr.it/~bagnara/Papers/Abstracts/ALPN99a) –

+0

Также по теме: Вы верите ... есть [ISO LISP] (https://en.wikipedia.org/wiki/ISLISP). –

ответ

5

Позвольте мне вначале уточнить, что вы подразумеваете под эталонной реализацией. Вы имеете в виду примерную реализацию, которая считается представляющей a действительной интерпретацией стандарта. Никогда не ясно, какой нормативной ценностью такая реализация может иметь —, что касается синтаксиса синтаксиса Java, который сделал много системного цикла.

Нет никакой эталонной реализации для ISO Prolog. Как и нет, для C, C++ или любого другого стандартизованного языка программирования ISO/IEC. Обратите внимание, что Java не стандартизирован никаким органом стандартизации, таким как ISO, IEC, ITU или CEN, ни какой-либо национальный орган, такой как ANSI; а скорее одной компанией. И именно эта компания предоставляет справочную реализацию.

Пролог существует с 1972 года — задолго до того, как была произведена стандартизация. И это был первый в своем роде язык и парадигма. Вскоре он разделился на несколько разных диалектов с несовместимым синтаксисом (Prolog 1, Edinburgh, Prolog II и т. Д.). Один из первых стандартных связанных документов — Draft Proposed Standard for Prolog Evaluable Predicates by Richard O'Keefe был circulated 1984. BSI начал работу в 1984 году; AFNOR 1985. В 1987 году начался процесс ИСО, в соответствии с ISO/IEC 13211-1 в 1995 году.

Сравните это с Java, который развился из предыдущих языков, таких как C, C++, а также других объектно-ориентированных языков и унаследовал многое от их. Он был разработан совершенно по-другому с компанией, отчаянно защищающей язык от всех видов отклонений. — Подумайте об этом: даже копии руководств были запрещены к публикации в Интернете.

В любом случае системы Prolog с ближайшим соответствие являются:

  1. SICStus Prolog 4.3 бета 1. Не известно, неверно истолкован любой допустимый текст Пролог. Полная поддержка Cor.1, Cor.2.

  2. GNU Prolog 1.4.4 (git version). Не известно, что неправильно прочитал любой текст Пролога. Некоторые различия в арифметике. В противном случае Cor.1, Cor.2.

  3. IF/Prolog V5. Единственная система, предлагающая строго соответствующий режим (см. Подпункт 5.1 e) ISO/IEC 13211-1: 1995.

Конкретное сравнение w.r.t. syntax (reading and writing) дает вам некоторое представление о том, чего вы можете ожидать от этих и других реализаций.

+0

Откуда вы получили информацию, чтобы классифицировать Прологи по ближайшему соответствию? –

+0

@GuyCoder: для Java см. Http://www.exploringbinary.com/why-volatile-fixes-the-2-2250738585072011e-308-bug/comment-page-1/#comment-4645 – false

+0

@GuyCoder: я бы сначала узнайте Prolog, серьезно. Лучшей ссылкой является SICStus. Второй лучший GNU. Весьма хорошо также Jekejeke - но это имеет некоторые отличия. – false

3

Нет, но GNU Prolog соответствует стандарту ISO Prolog Ядро довольно тесно. Также обратите внимание, что он содержит флаг strict_iso.

Существуют также другие компиляторы Prolog, которые обеспечивают хорошее соответствие стандартам.

+1

Хотя GNU Prolog предоставляет флаг 'strict_iso', этот флаг не обеспечивает строгого соответствия в смысле 5.1 e. – false

4

Другая реализация, которая обеспечивает строго соответствующий режим, - ECLiPSe.
Используйте его с опцией командной строки -L iso_strict.

Цитируя compliance statement:

ECLIPSE обеспечивает реализацию стандарта Прологе, как это определено в ISO/IEC 13211-1 (Информационные технологии, языки программирования, Пролог, Часть 1, Общие ядра, 1995) и технические исправления ISO/IEC 13211-1 TC1 (2007) и TC2 (2012).

1

Непосредственно из руководства SICStus Пролога 4.3.0:

ISO Compliance

SICStus Пролог полностью соответствует требованиям международного стандарта ISO/IEC 13211-1 (PROLOG: Часть 1 General Core) , дополненный Техническими исправлениями 1 и 2.

Чтобы помочь программистам, желающим писать стандартные совместимые программы, встроенных предикатов и арифметических функторов, которые входят в стандарт стандарта ISO , аннотируются с [ISO] в этом руководстве.

Рассмотрим: необходимость демонстрации соответствия в комитете выданных технического документа с 1995, за исключением в общем виде трудно оправдать, если вы не хотите, чтобы запустить большое количество унаследованного кода, который не может быть обновлен по какой-то причине , Вы хотите, чтобы запустили, используя современные идеи и функции, несовместимые с преждевременными нормативными ссылками с древних времен (когда рабочие станции Sun имели процессоры с тактовой частотой 120 МГц и 24 Мбайт ОЗУ).

См. Также главу Positioning SWI-Prolog руководства SWI Prolog.

Для того, чтобы освободить людей от поиска, список:

+2

w.r.t "устаревший" код. Обратите внимание, что такие системы, как синтаксис поддержки SWI, с 1976 года, который больше не соответствует ISO. Подобно нотации radix для чисел: '2'100'. В ISO это только '0b100'. См. [# 121] (http://www.complang.tuwien.ac.at/ulrich/iso-prolog/conformity_assessment) – false

+1

По поводу вашего мнения о «необходимости проявлять соответствие ...», пожалуйста, перейдите к вашей национальной стандартизации и принять вводный курс (1, 2 дня), чтобы понять, какую роль выполняет соблюдение/соответствие в различных ситуациях. SO определенно не место, чтобы обсудить это. – false

+0

@false Dontcha беспокойство, я знаю об этих вещах. В нем лежат большие баксы. –

 Смежные вопросы

  • Нет связанных вопросов^_^