程式語言分類

語言: CN / TW / HK

我們聽說過很多種程式語言,很多概念和叫法,很容易混淆,今天我們來按以下方式做一下分類。

 

1 與硬體的距離遠近

可分為 低階語言 (Low-Level Programming Language) 和 高階語言 (High-Level Programming Language)。

1.1 區別

低階語言 高階語言
較難學習和理解 容易學習和理解
執行速度很快 需要翻譯程式,所以比低階語言執行起來更慢
不允許抽象或只允許少許抽象 執行很多抽象
非常貼近硬體,在硬體層面程式設計有很多幫助工具 在硬體層面沒有提供很多工具
在程式設計過程中,硬體知識是必須的 在程式設計過程中,硬體知識並不是必須的
修改程式很困難 很容易修改程式
宣告語句可以直接對應到處理器指令 一條宣告可能涉及執行多條處理器指令
包括機器語言和組合語言 BASIC, Perl, Pascal, COBOL, Ruby, C, C++等

1.2 低階語言

包括 機器語言(Machine Language) 和 組合語言(Assembly Language)。

  • 機器語言 是用 二進位制程式碼 表示的 計算機能直接識別和執行的一種機器指令的集合。也被稱為 二進位制語言。機器語言的指令集由操作碼和運算元兩部分組成。操作碼規定了指令的操作,是指令中的關鍵字,不能預設。運算元表示該指令的操作物件。根據硬體指令集寫 0101 ,當然一般都用八進位制表示。機器語言寫的程式存在不便於閱讀、難以記憶的問題。

  • 組合語言 用 助記符 代替機器指令操作碼,用 地址符號或標號 代替指令或運算元的地址。也被稱為 符號語言。在不同的裝置中,組合語言對應著不同的機器語言指令集,通過彙編過程轉換成機器指令。特定的組合語言和特定的機器語言指令集是一一對應的,不同平臺之間不可直接移植。它對硬體指令做了簡單的封裝,一些操作可以用 ADD,MOVE 等英文單詞來表示了,但是寫出程式來依然是隻有了解計算機的人才能看懂的。

 

2 執行前是否需要編譯

需要編譯的叫做編譯型語言(Compiled Language) ,不需要編譯的叫做 解釋型語言(Interpreted Language) 。

2.1 編譯型語言

例如 C 語言,寫好之後,通過 編譯器 編譯成二進位制檔案,就可以在 CPU 上執行了。執行的時候不需要依賴於其他軟體,所以一般執行效率高。

2.2 解釋型語言

例如 Python ,Ruby 或者 Javascript ,寫好之後無需編譯,直接運行於自己的直譯器之上。解釋型語言因為跟硬體隔了一層,所以效率上一般是比較低的,但是功能上可以更為靈活。解釋型語言有時候也叫指令碼語言 Scripting Language ,二者是一個東西。

2.3 注意

很多語言也會同時使用編譯和解釋的方式來執行,例如 Java 就先編譯成 bytecode 然後再虛擬機器上執行。C 語言也可以根據需要在直譯器上執行。

 

3 其他

  • 按照程式語言設計風格可分為命令式語言(過程化語言)、結構化語言、面嚮物件語言、函式式語言、指令碼語言等;
  • 按照語言應用領域可分為通用程式語言(GPPL)和專用程式語言(DSL);

 

分享到: