您现在的位置是:首页 > 文章详情

编程分号的简要历史,分号的使用来自何处?

日期:2020-04-12点击:544

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!


在本文中,我将简要介绍在计算机编程语言中使用分号(许多计算机科学入门学生的祸根)的历史。我们将看到分号有两种用途:作为语句分隔符和作为语句终止符,并且我们将了解在过去60多年的编程语言历史中分号的使用发生了怎样的变化。

为什么编程语言使用分号

分号在编程语言中用于两件事:语句分隔符和语句终止符。当一种语言使用分号作为语句分隔符时,这允许您在同一行上编写多个语句,并使用分号来标记语句的分隔,以便编译器或解释器可以找出一个语句在哪里结束而另一条语句在哪里开始。

在以分号为分隔符的语言中,分号被视为可选的,当一行代码仅包含一条语句时,通常不会编写分号。

作为语句结束符的分号是不可选的,用于明确地标记语句的结束,使用分号作为终止符的编程语言将在分号不在其预期位置时标记错误。许多编程专家声称,以分号结尾的语句可以使程序更快,因为编译器可以更有效地执行,尽管我在本文末尾会对此主张提出异议。

早期的高级语言和分号的使用

当Fortran在20世纪50年代中期被作为一种高级编程语言引入时,编程语言的史前时代就结束了,Fortran既不使用分号作为语句分隔符,也不使用分号作为语句终止符,Fortran中的语句每行只能写一个,而新行是语句终止符。

在现代编程语言中首次使用分号是ALGOL 58,然而,这个版本并没有得到很好的实现,它很快就变成了ALGOL 60。这个早期版本的ALGOL使用分号作为分隔符,尽管分号经常被多余地用作语句结束符(尽管这不是必需的)。分号的这种混合使用可能会导致非常混乱的程序,分号通常放在某些行的末尾,而不是其他的行末尾,如我从Steve Maurer的网站上借来的ALGOL 60代码片段所示:

1

Algol 60衍生出了Algol的其他版本……一直到Algol 68。许多语言都是基于Algol的,但对当今语言影响最大的版本是Basic组合式编程语言(BCPL)。

BCPL是一种编程语言,由剑桥大学的Martin Richards于1967年开发,BCPL的设计采用了许多后来影响C语言发展的概念,稍后我们将看到。BCPL还使用分号作为语句分隔符,许多编写BCPL的程序员也使用分号来指示行的结尾,尽管像Algol一样,这种用法是多余的,行尾字符是BCPL中真正的语句分隔符。

影响分号当前使用的另一种语言是IBM的编程语言PL/I。PL/I是在20世纪60年代中期开发的,并且是当时的c++语言——因为该语言的设计者试图包含所有其他流行编程语言的所有特性,这样该语言就可以取代Fortran用于科学计算,而COBOL用于商业计算。

PL/I使用分号作为语句终止符,并且此设计决策对其他语言实现者(如C的开发者Ken Thompson和Dennis Ritchie)有影响。

B,NB,C和分号

大约在1968年左右,当贝尔实验室逐渐退出Multics项目时,Ken Thompson开始开发一种基于BCPL的新语言,他称之为B语言。您可以在Dennis Ritchie的有关C语言历史的文章中了解有关B的开发的更多信息。

汤普森(Thompson)将B设计为一种系统编程语言,用于开发当时处于萌芽状态的Unix操作系统。汤普森(Thompson)在B编程语言的设计中对BCPL进行了许多更改,他所做的更改之一是使分号成为语句终止符是强制性的。正如我前面提到的,在BCPL中,分号作为语句结束符是可选的,但这只是因为编译器使用了聪明的规则来允许不使用分号。汤普森希望B是一种更高效的语言,因此需要使用分号作为语句结束符。

当汤普森和里奇试图用B构建Unix时,他们意识到甚至汤普森的新语言也不适合作为系统编程语言,因此里奇开发了一种新的B版本,称为NB,以解决其中的一些问题。NB作为一种语言并没有持续很长时间,因为两个人决定只需要废弃B就可以了。

今天的分号状态

正如我们所知,分号已经成为许多语言(C、c++、Java、c#和JavaScript)中选择的语句结束符,这里只提到一些最流行的语言。JavaScript是一个有趣的示例,因为最新版本的JavaScript允许您在大多数以换行符结尾的语句的末尾省略分号。

并非所有的编程语言都使用分号作为语句终止符。 Python与Visual Basic和Visual Basic.NET一样,将换行符用作语句终止符。Ruby是另一种不使用分号的流行语言。

另一种较新的语言Go也不使用分号作为语句结束符——尽管它确实使用它作为语句分隔符。另一方面,另一种新的系统编程语言Rust使用分号作为语句结束符。

; // Terminator ;

显然,即使我们根本不应该使用分号,也没有就如何最好地使用分号达成共识。我的猜测是,随着编译器和解释器技术的改进,对语句结束符(如分号)这样的语法糖的需求将会减少——尽管分号作为语句分隔符的效果很好。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/zhibo

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-04-11
本文作者:杜尼卜
本文来自:“掘金”,了解相关信息可以关注“掘金”

原文链接:https://yq.aliyun.com/articles/754862
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章