編程語言介紹

語言的進化史

機器語言

  因爲計算機內部只能接受二進制代碼,所以,用二進制代碼0和1描述的指令稱爲機器指令,所有機器指令的集合構成計算機的機器語言,用機器語言編程的程序稱爲目標程序。機器語言屬於低級語言。編程

彙編語言

  彙編語言的實質和機器語言是相同的,都是直接對硬件操做,只不過指令採用了英文縮寫的標識符,更容易識別和記憶。彙編源程序通常比較冗長、複雜、容易出錯,但彙編語言的優勢是源程序經彙編生成的可執行文件不只比較小,並且執行速度很快。
  目前硬件廠商的專業人員使用的仍是彙編語言。編程語言

高級語言

  高級語言是大多數編程者的選擇。和彙編語言相比,它不但將許多相關的機器指令合成爲單條指令,而且去掉了與具體操做有關但與完成工做無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,因爲省略了不少細節,編程者也就不須要有太多的專業知識。
  高級語言主要是相對於彙編語言而言,它並非特指某一種具體的語言,而是包括了不少編程語言,像最簡單的編程語言PASCAL語言也屬於高級語言。
  高級語言所編制的程序不能直接被計算機識別,必須通過轉換才能被執行。不一樣高級語言之間最本質的區別是:轉化成二進制的方式不一致。操作系統

  按照轉化方式,能夠將高級語言分爲:翻譯

編譯類

  在應用源程序執行以前,就將程序源代碼「翻譯」成目標代碼(機器語言),所以其目標程序能夠脫離其語言環境獨立執行(編譯後生成的可執行文件,是cpu能夠理解的2進制的機器碼組成的),使用比較方便、效率較高。但應用程序一旦須要修改,必須先修改源代碼,再從新編譯生成新的目標文件(* .obj,也就是OBJ文件)才能執行,只有目標文件而沒有源代碼,修改很不方便。
  編譯後程序運行時不須要從新翻譯,直接使用編譯的結果就好了。程序執行效率高,依賴編譯器,跨平臺性差些。如C、C++、Delphi等
  跨平臺的概念:在兩個不一樣的操做系統上想要實現相同的功能時,調用接口的指令是不一樣的,調試

解釋類

  執行方式相似於咱們平常生活中的「同聲翻譯」,應用程序源代碼一邊由相應語言的解釋器「翻譯」成目標代碼(機器語言),一邊執行,所以運行效率比較低,並且不能生成可獨立執行的可執行文件,應用程序不能脫離其解釋器(想運行,必須先裝上解釋器,就像跟老外說話,必須有翻譯在場),但這種方式比較靈活,能夠動態地調整、修改應用程序。如Python、Java、PHP、Ruby等語言。
  解釋型語言最大的好處就是跨平臺(在安裝解釋器的前提下)。第二個好處就是發現程序的錯誤後,能夠當即修改。提升調試Bug的效率。
  雖然解釋類語言的執行效率低,可是那是針對計算機而言的。人類的最快反應速度在01s左右,是感知不到解釋類和編譯類語言的差別的接口

解釋型和編譯型語言的優缺點

編譯型

1、執行過程編譯器

  • 把源代碼編譯成機器語言的可執行程序;
  • 執行可執行程序文件;
    二、優勢
  • 程序執行時,再也不須要源代碼,不依賴語言環境,由於執行的是機器碼文件;
  • 執行速度快,由於源代碼已經編譯成計算機能夠直接理解的機器語言。
    三、缺點
  • 每次修改了源代碼,須要從新編譯,生成機器文件;
  • 跨平臺型很差,不一樣操做系統,調用底層的機器指令不一樣,由於不一樣平臺生成不一樣的機器碼文件。編譯

    解釋型

    一、執行過程
  • 用戶調用解釋器,執行源代碼文件;
  • 解釋器把源代碼文件邊編譯成機器指令,邊交給CPU執行。
    二、優勢
  • 天生跨平臺,由於解釋器已經作好了不一樣平臺的交互處理,用戶寫的源代碼不須要再考慮平臺差別性,可謂:一份源代碼,全部平臺均可直接執行;
  • 隨時修改,馬上見效,改完源代碼,直接運行看效果。
    三、缺點
  • 運行效率低,全部的代碼均需通過解釋器邊解釋邊執行,速度比編譯型慢不少;
  • 代碼是明文。效率

相關文章
相關標籤/搜索