12.22 文言文編程背後-語言的本質

一、文言文編程

最近github上有個文言文編程火了,效果看起來還比較牛B,看起像是是文言文,讀起來也能明白一定的意思。(可以留言給我索取官網體驗)

文言文編程背後-語言的本質

上圖代碼比較簡單就是輸出三遍hello world; 是不是讀起來有文言文的樣子也能大概明白其意思。 我們就來討論下計算機語言的本質。

二、計算機語言的進化之路

文言文編程背後-語言的本質

計算機語言由低級到高級大概分三個類別:機器語言、彙編語言、高級語言。也對應計算機語言由遠及近的三個發展階段。

在還沒有所謂計算機的時候,人們用於控制機器的就是開關了,而計算機最最底層的設計也是開關控制電路讓電路形成各種各樣的樣子,從而計算機執行各種指令,這樣的設計一直沒變過,變得只是電路不再那麼明顯。這也解釋了為啥由低到高的三個類別會對應由遠及近的三個發展階段。

機器語言:也就是最底層的控制電路的信號,比如一個二進制串'11010010',可能對應了計算機的某個指令。
彙編語言:如果我們操作機器使用機器語言的話,首先得記憶那麼多二進制串,還有完全得了解機器內部的運行原理。我們把一些操作用一些簡單的英文單詞來表示,這樣寫起程序來就方便很多了。
高級語言:彙編還是需要了解計算機很多內部的細節,基本還是在用機器的語言和機器進行對話,而高級語言的出現則進一步接近了人類的語言。讓編譯器去幫我們翻譯給機器,我們人類則更專注於表達邏輯,不需要太瞭解計算機內部的執行原理。

三、高級語言-表達邏輯

文言文編程背後-語言的本質

高級語言讓我們更注重邏輯的表達,如何去表達邏輯呢我們又有很多種方法。

一般的語言
如C語言,結構上來說總是逃不開順序、循環、選擇這樣的範式,其實這樣基本就能表達幾乎所有的計算機邏輯,只是放不方便的問題。


面向對象的語言
面向對象的語言,又讓我們的表達上升了一個層次,把各種邏輯都拆成一個個對象做出的行為,讓我們人類協作開發更便利。
SQL
操作數據的語言,在數據庫的基礎上把操作數據的邏輯抽象成select、group、where、order、join等, 讓我們不用關心內部數據怎麼進行計算,甚至還能幫我們優化邏輯。
其他
語言還有很多種,都有著各自特點、各自的作用,比如函數式語言、邏輯語言等。

四、計算機語言與人類語言

計算機語言只是我們人類操作機器用的,有它的侷限性,而人類的語言是人與人直接交流用的,經過了幾十萬年的打磨,我們可以比較隨意的表達,魯棒性特別高,字文序順亂了我們也能看得懂,機器為了準確不能有這樣的魯棒性,必須得有一定得規範。

所謂的文言文編程,不過是用中文做了下映射,其實質還是javaScript,表達的形式一點沒變,我們都不能稱他為一門新語言,只能說是把javaScript翻譯成了文言文的樣子。這裡並沒有貶低它的意思,還是真心佩服這樣的創意,人嘛,重要的就是有趣。


分享到:


相關文章: