是否有ISO-Prolog参考实施?

时间:2013-11-21 11:28:54

标签: standards iso-prolog reference-implementation

Javareference implementation

ISO-Prolog是否有参考实施?

我确实有INCITS/ISO/IEC 13211-1:1995 (R 2007),因此无需提出建议。

修改

值得注意的是:Conformity Assessment I: Syntax

4 个答案:

答案 0 :(得分:5)

首先让我澄清一下参考实现的含义。您的意思是一个示例实现,被视为代表 有效的标准解释。从来都不清楚这样的实现可能具有什么样的规范价值 - 想想使许多系统循环的Java float语法错误。

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

此外,Prolog自1972年以来就存在 - 早在任何标准化发生之前。它是第一种同类型和范式的语言。它很快分裂成几种语言不相容的方言(Prolog 1,Edinburgh,Prolog II等)。第一个标准相关文档之一 - Draft Proposed Standard for Prolog Evaluable Predicates by Richard O'Keefecirculated 1984。 BSI始于1984年; 1985年AFNOR。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 version)。不知道是否误读任何有效的Prolog文本。算术中的一些差异。否则Cor.1,Cor.2。

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

  4. 具体比较w.r.t. syntax (reading and writing)让您对这些和其他实施方案的期望有所了解。

答案 1 :(得分:4)

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

引用compliance statement

  

ECLiPSe提供ISO / IEC 13211-1(信息技术,编程语言,Prolog,第1部分,通用核心,1995)和技术勘误ISO / IEC 13211-1 TC1(2007)中定义的标准Prolog的实现和TC2(2012年)。

答案 2 :(得分:3)

没有。但GNU Prolog非常接近ISO Prolog 核心标准。另请注意,它提供了strict_iso标记。

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

答案 3 :(得分:1)

直接来自SICStus Prolog手册,4.3.0:

ISO Compliance

  

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

     

为了帮助希望编写标准兼容程序的程序员,   内置谓词和算术仿函数,它们是ISO的一部分   Prolog Standard在本手册中以[ISO]注释。

考虑:除非您想要运行大量因某些原因无法更新的遗留代码,否则需要从1995年开始遵守委员会发布的技术文档,除非是一般方式。您希望运行使用现代的想法和功能,不符合古代的过早规范性引用(当Sun工作站具有120 MHz CPU和24 MiB RAM时)。

另见SWI Prolog手册的Positioning SWI-Prolog章节。

为了减轻人们的搜索,列表: