计算机语言的标准与实现是什么?

标准(specification,)是什么?

确切的含义我也不知道,不过我找到了一份ECMAScript语言的标准文档,大概看了一些明白了,标准就是详细规定了一门语言的语法是什么样子的。标准会不断发展以提高生产力,比如ECMAScript最开始的版本并不支持正则表达式,在1999年才把正则表达式加入了标准。

实现(implementation)是什么?

“实现”的意思就是用另外一门计算机语言编写出一个程序,让这个程序支持标准(specification)。比如google v8是用c++编写的一种ECMAScript的实现。实现要完全遵循标准吗?不一定,有的实现支持一部分标准而且还会加入私有的特性,这些特性标准里面并没有。

标准与实现的相互作用?

单就web而言不用怀疑,最开始肯定是先有标准后又实现,不过后来为了适应生产力的发展,有一些浏览器厂商为语言增加了一些新特性,标准委员会觉得这个特性不错,然后把就会把这个特性加入到标准中,新的标准又会促进其它的厂商实现这些新特性。

为什么有的语言有很多种实现呢?

对于初学者而言有一个例子我感觉不错,标准就像是一道题,而实现则像是不同的解法,有的解法清晰明了很容易让人看懂,有的解法效率高。目的不一样我们需要的方法就不一样。

原文地址:https://www.cnblogs.com/yfish/p/6354084.html