如何看待编程语言
什么是語言
語言是用來傳遞信息的交流工具。它的常見形式有:文字(視覺上)、話語(聽覺上)。
語言是如何表達信息的
語言提供了模型和規則。
語言模型必須有足夠的信息復雜度,如字、詞、短語。只有語言本身先具有足夠的復雜度,才能去表達具有相當復雜度的信息。
語言規則即語法規則,信息的組織方式。即什么樣的信息應該以什么樣形式放在什么位置。只有遵循了相同的語言規則,交流的雙方才能從約定的位置以約定的形式快速、準確地發出 / 接收信息。
如果沒有語言規則,則
- 表達信息會有困難,比如心里有想法但就是不知道怎么說;
- 接收信息也會有困難,比如病句、錯句、歧義句等等讓人聽不懂。
所以綜上,可以簡單的認為,語言的要素有兩個:模型 和 規則。
語言的作用
語言提供了模型和規則。開發者在模型和規則的基礎上,對現實問題進行信息抽象,以語言規定的形式描述現實業務問題。
所以語言的作用是:
- 將開發者的意圖高效表達出來,告訴計算機,這一部分信息是經常變的;
- 將計算機的底層資源如內存,指令,暴露給開發者。內存和指令分別可以用來存儲數據和執行程序,而數據+程序是所有軟件共同的組成特征。
這就實現了雙向的信息交流。
計算機編程語言
編程語言只是告訴計算機如何解決問題的工具。
編程語言的描述能力越好,那么語言就越好用。
語言雖然可以描述問題,但是使用一門語言,就必須遵守語言的規則和各種約束機制。這就導致代碼的內容不僅僅包含實現業務的部分,同時也包含語言工具本身為了維持系統正常工作而編寫的代碼。如果前者比后者的比值越大,表明語言越容易使用,開發者不需要寫業務外的代碼。如果前者比后者比值越小,說明開發者需要寫更多地業務無關的代碼。這個比值一定程度上能反應語言的表達能力。
C
以C語言為例,由于C語言暴露給開發者的語言模型比較底層,可以直接進行原始內存操作,這就導致開發者需要自己手動管理內存。這樣才能保證系統穩定運行指定的業務。手動管理內存容易出錯,有一定的難度,同時會給開發者帶來額外的開發負擔。對于復雜的業務層的開發,用C來做顯然不適合,因為開發人員無法更多地專注于業務實現。
C++
C++相對于C語言,完全兼容C語言,并在C語言的基礎上增加了適應于快速開發復雜高層業務的對象模型,使C++的開發效率相對于C有顯著提升。但是C++仍然保留了C的內容,使得該語言既能應對底層開發,又能應對高層業務開發。當然其缺點也在于此,正因為它不徹底的革命,導致在很多場景下會被針對高層業務開發效率更高的JAVA或其他腳本語言取代。
未完待續
總結
- 上一篇: 直击南方暴雨浮桥被冲垮 城镇内涝:航拍广
- 下一篇: 谁说比亚迪不会赚钱:王传福“赌”赢了六次