3

Java有一个参考实现

ISO-Prolog 有参考实现吗?

我确实有INCITS/ISO/IEC 13211-1:1995 (R 2007),所以不需要建议。

编辑

注意:一致性测试 I:语法

4

4 回答 4

6

让我首先澄清一下您所说的参考实现是什么意思。您的意思是一个示例实现,它被认为代表对标准的有效解释。永远不清楚这样的实现可能具有什么规范价值——想想导致许多系统循环的 Java 浮点语法错误。

ISO Prolog 没有参考实现。就像没有 C、C++ 或任何其他 ISO/IEC 标准化编程语言一样。请注意,Java 没有被 ISO、IEC、ITU 或 CEN 等任何标准化机构或 ANSI 等任何国家机构标准化;而是由一家公司。正是这家公司提供了参考实现。

此外,Prolog 自 1972 年以来就存在——早在任何标准化发生之前。它是同类和范式中的第一种语言。它很快分裂成几种语法不兼容的不同方言(Prolog 1、Edinburgh、Prolog II 等)。第一个与标准相关的文件之一——Richard O'Keefe 的 Prolog 可评估谓词的提议标准草案1984 年发布。BSI 始于 1984 年;AFNOR 1985。1987 年 ISO 流程开始,1995 年交付 ISO/IEC 13211-1。

相比之下,Java 是从以前的语言(如 C、C++ 以及其他面向对象的语言)演变而来的,并从它们那里继承了很多东西。它的开发方式完全不同,一家公司强烈捍卫语言免受各种偏差的影响——想想看:即使是手册的副本也被禁止在互联网上提供。

在任何情况下,最符合的 Prolog 系统是:

  1. SICStus Prolog 4.3 beta 1. 不知道会误读任何有效的 Prolog 文本。完全支持 Cor.1、Cor.2。

  2. GNU Prolog 1.4.4(git 版本)。不知道会误读任何有效的 Prolog 文本。算术上的一些差异。否则,Cor.1、Cor.2。

  3. 中频/序言 V5。唯一提供严格符合模式的系统(参见 ISO/IEC 13211-1:1995 子条款 5.1 e)。

具体的比较 wrt语法(阅读和写作)让您对这些和其他实现的期望有一些印象。

于 2013-11-21T14:42:41.910 回答
3

另一种提供严格符合模式的实现是ECLiPSe
将它与-L iso_strict命令行选项一起使用。

引用合规声明

ECLiPSe 提供了 ISO/IEC 13211-1(Information Technology, Programming Languages, Prolog, Part 1, General Core, 1995)和技术勘误 ISO/IEC 13211-1 TC1 (2007) 和 TC2 ( 2012)。

于 2013-12-01T17:26:20.390 回答
2

不,但GNU Prolog非常严格地遵循 ISO Prolog Core标准。另请注意,它提供了一个strict_iso标志。

还有其他提供良好标准合规性的 Prolog 编译器。

于 2013-11-21T11:39:26.627 回答
1

直接来自 SICStus Prolog 手册,4.3.0:

ISO 合规性

SICStus Prolog 完全符合经技术勘误 1 和 2 扩充的国际标准 ISO/IEC 13211-1(PROLOG:第 1 部分 - 通用核心)。

为了帮助希望编写符合标准的程序的程序员,作为 ISO Prolog 标准一部分的内置谓词和算术函子在本手册中用 [ISO] 注释。

考虑一下:除非您想运行大量由于某种原因无法更新的遗留代码,否则很难证明对 1995 年以来委员会发布的技术文档的合规性,除非以一般方式证明是合理的。您希望使用现代理念和功能运行,而不是遵守古代过早的规范参考(当时 Sun 工作站有 120 MHz CPU 和 24 MiB 的 RAM)。

另见SWI Prolog 手册的定位 SWI-Prolog一章。

为了让人们免于搜索,列表:

于 2014-12-25T13:17:40.240 回答