7

维基百科声称Haskell 是“标准化的”,但 Haskell 标准并未得到 ISO 等国际公认标准机构的批准;甚至没有像 BSI 或 ANSI 这样的国家机构。

那么,编程语言被标记为“标准化”的真正标准是什么?是否只需要在某处的网站上发布规范

4

1 回答 1

6

你已经回答了你自己的问题。标准化语言是由某种规范定义的语言,无论是文档还是使用本身标准化和形式化的语言(例如 SML)的“参考实现”。哪个机构认可或批准该标准并不是真正的问题。

这与 Perl 或 PHP 等实现定义的语言相反,在这些语言中,语言所做的只是由该语言的某些特定“旗舰”实现所定义的。

所以我们可以说某个 C 编译器实际上并没有正确编译 C,因为它不遵守标准。同时,我们不能说 CPython 没有正确解释 Python,因为它所做就是 Python 所做的,根据定义。

Haskell 由 Haskell 报告定义,最新版本是 Haskell 2010:http ://www.haskell.org/onlinereport/haskell2010/

本报告由一个委员会起草、投票和批准。此外,历史上存在并且仍然存在多个符合报告或几乎符合报告的 Haskell 编译器和解释器,但有记录的例外情况。

编写到标准的代码应该可以跨编译器移植,并且当在编译器和报告之间发现分歧(“预期”之外)时,通常会更改编译器或报告以符合要求。

于 2013-01-31T20:47:34.760 回答