解釋型語言和編譯型編輯語言、動態語言和靜態語言的區別

Python是一門解釋型的編輯語言,它具有解釋型語言的運行機制。
在計算機中,能真正驅動機器運行的是機器指令,但是如果開發者直接用機器指令進行編輯是不現實的,因此需要計算機高級語言。高級語言允許自然語言來編程,但高級語言的程序最終必須被翻譯成機器指令來執行。
高級語言按照程序的執行方式,可以分爲編譯型和解釋型兩種
##編譯型語言和解釋型語言

編譯型語言

編譯型語言是指使用專門的編譯器,針對特定的操作系統將某種高級語言源代碼,一次性“翻譯”成可被平臺執行的機器語言(包括機器指令和操作數),幷包裝成該平臺所能識別的可執行程序的格式,這個轉換過程稱爲編譯(Compile)。編譯生成的可執行程序可以脫離開發環境,在特定的平臺上獨立運行。
現有的C、C++等高級語言都屬於編譯型語言。

解釋型語言

解釋型語言是指使用專門的解釋器,將源程序祖剛解釋成特定平臺的機器代碼並立即執行的語言。
解釋型語言通常不會進行整體性的編譯和鏈接處理,解釋型語言相當於把編譯型語言中的編譯和解釋過程混合到一起同時完成。
可以認爲,每次執行解釋型語言的程序都需要進行一次編譯,因此解釋型語言的程序運行效率通常較低,而且不能脫離解釋器獨立運行。但解釋型語言有一個優勢,就是跨平臺比較容易,只需要提供特定平臺的解釋器即可,每個特定平臺上的解釋器都負責將源程序解釋成特定平臺的機器指令。
解釋型語言可以方便地實現源程序的移植,但這是以犧牲程序執行效率爲代價的

編譯型語言PK解釋型語言

編譯型語言和解釋型語言的對比如圖所示。
在這裏插入圖片描述
根據圖1不難理解,編譯型語言和解釋型語言的區別在於,編譯是對高級語言程序進行一次性的翻譯,這樣的好處是,一旦程序被徹底翻譯,他就可以重複運行,且今後都不在需要編譯器和源代碼;而如果使用解釋器,則高級語言程序每次運行,都需要藉助源程序和解釋器,其最大的好處就是,程序很好的可移植性。

動態語言和靜態語言:

動態語言:

動態語言也叫動態類型定義語言,動態語言是指程序在運行時可以改變其結構:新的函數可以被引進,已有的函數可以被刪除等在結構上的變化。動態語言的類型檢查是在運行時做的。
動態語言的優點:方便閱讀不需要寫非常多類型相關的代碼。
動態語言的缺點:不方便調試,命名不規範是會造成讀不懂,不利於理解。
常見的動態語言有:Python,JavaScript,php

靜態語言:

靜態語言也叫靜態類型定義語言。即一種在編譯時,數據類型是固定的語言。大多數靜態類型定義語言強制這一點,他們要求在使用多有變量之前要聲明他們的數據類型。
在使用數據之前,必須首先定義類型:int ,float,double等等。相當於在使用他們之前要爲他們分配好內存空間。
靜態語言的優點:在於其結構規範,便於調試,方便類型安全。
靜態語言的缺點:是需要寫更多的代碼,導致不便於閱讀,不清晰明瞭。
常見的靜態語言:C、C++、Java

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章