學習筆記1 程式語言的分類

2021-10-01 23:10:45 字數 1964 閱讀 5646

程式語言主要從以下角度進行分類:

(1)編譯型和解釋型;

(2)靜態語言和動態語言;

(3)強型別定義語言和弱型別定義語言。

1、編譯型和解釋型

乙個負責翻譯的程式對我們的源**進行轉換,生成相應的可執行**,這個過程,就稱為編譯(compile);執行編譯的程式稱為編譯器(compiler)

注:不知道你有沒有理解這句話。首先什麼是源**?源**是指採用某種程式語言編寫的電腦程式,人類可讀,比如:result = 2 + 3,我們很容易知道是將2加3的結果賦予給result。什麼是可執行**?可執行**,也稱目標**,是計算機可以識別並執行出結果的**。一般人類不可讀,設計cpu、計算機的專家能夠讀懂。什麼是編譯?將源**轉成計算機可執行**時,有兩種程式執行的方式,一種是編譯,一種是解釋。編譯就是將源**一次性轉換成目標**的過程。

可執行檔案; 注:

一般乙個原始檔的編譯都會對應乙個目標檔案。

這些目標檔案裡的內容基本上已經是可執行**了,但由於只是整個專案的一部分,所以我們還不能直接執行;待所有的原始檔編譯都大功告成,我們就可以把這些半成品的目標檔案打包成乙個可執行檔案。

這個工作由另乙個程式複製完成,稱為鏈結(link),負責鏈結的程式叫做鏈結程式(linker)

鏈結程式除了鏈結目標檔案外,還可能包括影象、聲音等各自資源,還要負責去除目標檔案之間的冗餘重複**等。鏈結完成後,一般得到我們需要的執行檔案。

總結(好好理解下面這兩句話):

那麼什麼是解釋型語言呢?

解釋型程式中,由於程式總是以源**的形式出現,因此只要有相應的直譯器移植(比如,將同乙個py檔案,放入pycharm或者spyder都可以執行)就不是問題。

編譯型程式雖然源**也可以移植,但前提是必須針對不同的系統分別進行解釋,當工程複雜時,會消耗大量時間。解釋型程式節省了等待漫長的編譯步驟,修改除錯也非常簡單。

強調:

由於解釋型程式是將編譯的過程放到執行過程中,這就決定了解釋型程式注定要比編譯型慢上一大截。

對比:

2、靜態語言和動態語言

舉例:

# 在python裡對變數型別的確定是在賦值過程中確定的

x =3

type

(x)

# 在c語言中變數型別是提前確定好的

int x

x =3

可見:主要是對變數的資料型別的處理方式不同。

3、強型別定義語言和弱型別定義語言

強型別定義語言可能在速度上稍微遜色弱型別定義語言,但在嚴謹性上能有效避免很多錯誤。

我們總結出:python是一種動態解釋型的強型別定義語言。

語言綜合如下

程式語言的分類

可將程式語言分為三大類 1 機器語言 機器語言是一種指令集的體系。這種指令集是電腦cpu可以直接解讀的資料。優點 執行效率高 缺點 學習難度高,且開發效率低 2 組合語言 在組合語言中,用助記碼 mnemonics 代替機器語言,用位址符號 symbol 或標號 label 代替指令或運算元的位址。...

程式語言分類

程式語言就是人與計算機交流的介質 機器語言 計算機是通過高低電平來進行控制的,它只認識0和1,所以在最開始,在程式設計的時候都是使用0和1編寫,這樣可以直接操控計算機進行工作。這個語言就是機器語言 優點 執行效率高 缺點 開發效率極低 組合語言 組合語言類似於機器語言,但是組合語言只是把一串二進位制...

程式語言分類

機器語言 用二進位制指令程式設計,本質是直接操作硬體 優點 執行效率高 缺點 開發效率低 學習難度高 組合語言 用英文標籤代替二進位制指令,本質也是直接操作硬體 優點 執行效率高 缺點 開發效率低 學習難度高 高階語言 用人類的字元去編寫程式,人類的字元計算機無法理解,必須經過翻譯,翻譯成機器語言計...