1. 程式人生 > 其它 >程式語言分為幾類

程式語言分為幾類

程式語言分為分成機器語言、組合語言、高階語言三大類:機器語言:用二進位制程式碼 0 和 1 描述的指令稱為機器指令;組合語言:直接對硬體操作,彙編程式的每一句指令只能對應實際操作過程中的一個很細微的動作;高階語言:所編制的程式不能直接被計算機識別,必須經過轉換才能被執行。

programming 程式設計

機器語言
由於計算機內部只能接受二進位制程式碼,因此,用二進位制程式碼 0 和 1 描述的指令稱為機器指令,全部機器指令的集合構成計算機的機器語言,用機器語言程式設計的程式稱為目標程式。只有目標程式才能被計算機直接識別和執行。但是機器語言編寫的程式無明顯特徵,難以記憶,不便閱讀和書寫,且依賴於具體機種,侷限性很大,機器語言屬於低階語言。

用機器語言編寫程式,程式設計人員要首先熟記所用計算機的全部指令程式碼和程式碼的涵義。手程式設計序時,程式設計師得自己處理每條指令和每一資料的儲存分配和輸入輸出,還得記住程式設計過程中每步所使用的工作單元處在何種狀態。這是一件十分繁瑣的工作。編寫程式花費的時間往往是實際執行時間的幾十倍或幾百倍。而且,編出的程式全是些 0 和 1 的指令程式碼,直觀性差,還容易出錯。除了計算機生產廠家的專業人員外,絕大多數的程式設計師已經不再去學習機器語言了。

機器語言是微處理器理解和使用的,用於控制它的操作二進位制程式碼。儘管機器語言好像是很複雜的,然而它是有規律的。存在著多至 100000 種機器語言的指令。

組合語言
組合語言的實質和機器語言是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的識別符號,更容易識別和記憶。它同樣需要程式設計者將每一步具體的操作用命令的形式寫出來。彙編程式的每一句指令只能對應實際操作過程中的一個很細微的動作。例如移動、自增,因此彙編源程式一般比較冗長、複雜、容易出錯,而且使用匯編語言程式設計需要有更多的計算機專業知識,但組合語言的優點也是顯而易見的,用匯編語言所能完成的操作不是一般高階語言所能夠實現的,而且源程式經彙編生成的可執行檔案不僅比較小,而且執行速度很快。

高階語言
高階語言是大多數程式設計者的選擇。和組合語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆疊、暫存器等,這樣就大大簡化了程式中的指令。同時,由於省略了很多細節,程式設計者也就不需要有太多的專業知識。

高階語言主要是相對於組合語言而言,它並不是特指某一種具體的語言,而是包括了很多程式語言,像最簡單的程式語言 PASCAL 語言也屬於高階語言。

高階語言所編制的程式不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類。

編譯類:編譯是指在應用源程式執行之前,就將程式原始碼“翻譯”成目的碼(機器語言),因此其目標程式可以脫離其語言環境獨立執行(編譯後生成的可執行檔案,是 cpu 可以理解的 2 進位制的機器碼組成的),使用比較方便、效率較高。但應用程式一旦需要修改,必須先修改原始碼,再重新編譯生成新的目標檔案(* .obj,也就是 OBJ 檔案)才能執行,只有目標檔案而沒有原始碼,修改很不方便。

編譯後程序執行時不需要重新翻譯,直接使用編譯的結果就行了。程式執行效率高,依賴編譯器,跨平臺性差些。如 C、C++、Delphi 等

解釋類:執行方式類似於我們日常生活中的“同聲翻譯”,應用程式原始碼一邊由相應語言的直譯器“翻譯”成目的碼(機器語言),一邊執行,因此效率比較低,而且不能生成可獨立執行的可執行檔案,應用程式不能脫離其直譯器(想執行,必須先裝上直譯器,就像跟老外說話,必須有翻譯在場),但這種方式比較靈活,可以動態地調整、修改應用程式。如 Python、Java、PHP、Ruby 等語言。

它們的優缺點
機器語言:優點是最底層,速度最快,缺點是最複雜,開發效率最低。

組合語言:優點是比較底層,速度最快,缺點是複雜,開發效率最低

高階語言:編譯型語言執行速度快,不依賴語言環境執行,跨平臺差;解釋型跨平臺好,一份程式碼,到處使用,缺點是執行速度慢,依賴直譯器執行。