因爲計算機內部只能接受二進制代碼,所以,用二進制代碼0和1描述的指令稱爲機器指令,所有機器指令的集合構成計算機的機器語言,用機器語言編程的程序稱爲目標程序。機器語言屬於低級語言。編程
彙編語言的實質和機器語言是相同的,都是直接對硬件操做,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。彙編源程序通常比較冗長、複雜、容易出錯,但彙編語言的優勢是源程序經彙編生成的可執行文件不只比較小,並且執行速度很快。
目前硬件廠商的專業人員使用的仍是彙編語言。編程語言
高級語言是大多數編程者的選擇。和彙編語言相比,它不但將許多相關的機器指令合成爲單條指令,而且去掉了與具體操做有關但與完成工做無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,因爲省略了不少細節,編程者也就不須要有太多的專業知識。
高級語言主要是相對於彙編語言而言,它並非特指某一種具體的語言,而是包括了不少編程語言,像最簡單的編程語言PASCAL語言也屬於高級語言。
高級語言所編制的程序不能直接被計算機識別,必須通過轉換才能被執行。不一樣高級語言之間最本質的區別是:轉化成二進制的方式不一致。操作系統
按照轉化方式,能夠將高級語言分爲:翻譯
在應用源程序執行以前,就將程序源代碼「翻譯」成目標代碼(機器語言),所以其目標程序能夠脫離其語言環境獨立執行(編譯後生成的可執行文件,是cpu能夠理解的2進制的機器碼組成的),使用比較方便、效率較高。但應用程序一旦須要修改,必須先修改源代碼,再從新編譯生成新的目標文件(* .obj,也就是OBJ文件)才能執行,只有目標文件而沒有源代碼,修改很不方便。
編譯後程序運行時不須要從新翻譯,直接使用編譯的結果就好了。程序執行效率高,依賴編譯器,跨平臺性差些。如C、C++、Delphi等
跨平臺的概念:在兩個不一樣的操做系統上想要實現相同的功能時,調用接口的指令是不一樣的,調試
執行方式相似於咱們平常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,所以運行效率比較低,並且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器(想運行,必須先裝上解釋器,就像跟老外說話,必須有翻譯在場),但這種方式比較靈活,能夠動態地調整、修改應用程序。如Python、Java、PHP、Ruby等語言。
解釋型語言最大的好處就是跨平臺(在安裝解釋器的前提下)。第二個好處就是發現程序的錯誤後,能夠當即修改。提升調試Bug的效率。
雖然解釋類語言的執行效率低,可是那是針對計算機而言的。人類的最快反應速度在01s左右,是感知不到解釋類和編譯類語言的差別的接口
1、執行過程編譯器
跨平臺型很差,不一樣操做系統,調用底層的機器指令不一樣,由於不一樣平臺生成不一樣的機器碼文件。編譯
代碼是明文。效率