公司动态

编程语言中的分号

IT届流传着一个广为人知的陈年笑话:

 

 

我是个程序猿,一天我坐在路边一边喝水一边苦苦检查bug。这时一个乞丐在我边上坐下了,开始要饭,我觉得可怜,就给了他1块钱,然后接着调试程序。他可能生意不好,就无聊看看我在干什么,然后过了一会,他幽幽的说,这里少了个分号。

 

 

分号。

 

汇智动力

 

对,我们今天就来聊聊编程语言中的分号!

 

编程语言的数量,那可多了去了。但是,分号的作用无外乎两种:语句分隔符语句终止符

 

当然,还有很多编程语言不涉及分号的使用,此处先放下不管。

 

汇智动力

 

我们先看一下分号,是怎么出现到编程语言中的。

 

FORTRAN语言是世界上第一个被正式推广使用的高级编程语言。想了解编程语言的可以看一下汇智妹之前写的《编程语言发展史》

 

在FORTRAN语言中,分号毫无存在感,既不作为语句分隔符使用,也不作为语句终止符。FORTRAN中的语句每行只能写一个,所以新行就自然而然成为了语句终止符。

 

汇智动力

 

1958年12月,首次使用分号的ALGOL 58诞生了。在这个版本中,分号是作为语句分隔符使用的,虽然经常被多余地用作语句结束符。

 

然而在1959年,IBM与SHARE因应700系列上运作更替的成本效益,终止了ALGOL 58的使用。

 

汇智动力

 

随着ALGOL的发展,也启发了Simula、Pascal、Ada、C语言的发展。

 

C语言或者说类C语言则开始把分号作为语句结束符来使用,而JavaScript在此同时允许在大多数以换行符结尾的语句末尾省略分号

 

将分号作为语句结束符这件事,开启了一扇新的大门。

 

汇智动力

 

写分号,不是为了配合人类习惯,只是为了配合编译器。尤其是在那个编译器还不太聪明的年代。

 

渐渐地,关于分号的段子越来越少,不需要分号的语言也越来越多。

 

比如Python,比如Swift,比如Ruby……当然还有Go,不过,Go只是不将分号作为语句终止符,但会把它作为语句分隔符。

 

汇智动力

 

我们有理由相信,随着编程语言的不断发展,分号这个磨人的小妖精,将彻底消失。

 

当然,分号作为语句分隔符还是很好用的,这个可以有。