Prolog 模块的 ISO 标准 (ISO/IEC 13211-2) 有哪些(感知到的)缺点?

问题描述 投票:0回答:1

Prolog 模块的 ISO 标准并未被广泛采用。我发现似乎实现它们的唯一系统是Amzi!序言。大多数系统没有采用 ISO 标准的模块的原因是什么?我可以找到一些说法,表明这是由于规范的缺陷造成的,但我无法找到证据来支持这些说法。其他模块系统解决了哪些 Prolog 模块的 ISO 标准无法解决的问题?如果系统至少提供 ISO Prolog 模块作为共同点,这对 Prolog 社区不是有帮助吗?

StackOverflow 上已经有一些关于 Prolog 模块 ISO 标准的问题,但它们没有回答上述问题。由于 StackOverflow 不是讨论意见的地方,我更感兴趣的是:

与其他实施的模块系统相比,Prolog 模块的 ISO 标准有哪些技术优点和缺点?

prolog iso-prolog
1个回答
0
投票

模块标准 ISO/IEC 13211-2:2000 允许多种实现。事实上,文档本身在 6.4.4.1 和 6.4.4.2 中给出了两个实例。这是其采用的更大问题之一。事实上,即使是基于 Quintus/SICStus 的模块系统也可以被视为另一个实例。

另一个(小)问题是对仅具有一种元参数的高阶谓词的支持很差,无论其确切含义如何。但公平地说,在 2000 年,许多人还没有充分理解这一点。虽然 Quintus 至少从 1986 年 4 月起就提供了这种机制,但许多关键功能都很好地隐藏在手册中,例如

call/N
,它从未在 谓词索引 中列出。请参阅此答案了解更多信息。

至于你所指的系统,我粗略地检查了自我声明合规的来源。另一方面,它似乎并不完全基于第 1 部分 (13211-1)。例如,有一个内置的

sub_atom/4
,但标准有
sub_atom/5
。而且抛出错误似乎也不符合要求。所以我有点犹豫是否要进一步调查这个问题,因为我无法编译系统。许多系统声称合规/一致,但更仔细的调查往往显示出不令人满意的结果。

© www.soinside.com 2019 - 2024. All rights reserved.