维基百科声称Haskell是“标准化”的,但Haskell标准并未得到诸如ISO这样的国际公认标准机构或BSI或ANSI等国家机构的批准。 那么,将编程语言标记为“标准化”的标准真正是什么?它只需要在某个网站上发布规范吗?
你已经回答了自己的问题。标准化语言是指由某些规范定义的语言,这些规范可以是文件,也可以是一个已被标准化和正式化的语言(例如SML)的“参考实现”。哪个机构承认或批准该标准并不是真正的问题。这与一种实现定义语言相对应,例如Perl或PHP,其中语言的操作方式仅由语言的某些特定“旗舰”实现的操作方式定义。因此,我们可以说某个C编译器实际上没有正确地编译C,因为它不遵守标准。同时,我们不能说CPython不能正确地解释Python,因为根据定义,它所做的就是Python所做的。Haskell由Haskell报告定义,其最新版本是Haskell 2010:http://www.haskell.org/onlinereport/haskell2010/ 该报告由委员会制定、投票和批准。此外,历史上有多个Haskell编译器和解释器符合报告,或者几乎符合报告,并带有记录的例外情况。按照标准编写的代码应该在编译器之间可移植,当编译器和报告之间出现分歧(除了“预期”的分歧)时,通常会将编译器或报告更改为符合规范。