IT屆流傳著一個廣為人知的陳年笑話:
我是個程序猿,一天我坐在路邊一邊喝水一邊苦苦檢查bug。這時一個乞丐在我邊上坐下了,開始要飯,我覺得可憐,就給了他1塊錢,然後接著調試程序。他可能生意不好,就無聊看看我在幹什麼,然後過了一會,他幽幽的說,這裡少了個分號。
分號。
![編程語言中的分號](http://p2.ttnews.xyz/loading.gif)
對,我們今天就來聊聊編程語言中的分號!
編程語言的數量,那可多了去了。但是,分號的作用無外乎兩種:語句分隔符和語句終止符。
當然,還有很多編程語言不涉及分號的使用,此處先放下不管。
![編程語言中的分號](http://p2.ttnews.xyz/loading.gif)
我們先看一下分號,是怎麼出現到編程語言中的。
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只是不將分號作為語句終止符,但會把它作為語句分隔符。
我們有理由相信,隨著編程語言的不斷髮展,分號這個磨人的小妖精,將徹底消失。
當然,分號作為語句分隔符還是很好用的,這個可以有。
閱讀更多 匯智動力學院 的文章