天天看點

Python--詳解腳本語言|編譯語言|膠水語言的差別

1.什麼是腳本語言?

  • 腳本語言:腳本語言是一種介于标記語言和程式設計語言之間的語言,沒有程式設計語言複雜、嚴謹的文法和規則。
  • 腳本文法比較簡單,比較容易掌握,與程式設計語言也有許多相似之處,其函數與程式設計語言比較相似一些。與程式設計語言之間最大的差別是程式設計語言的文法和規則更為嚴格和複雜一些。
  • 腳本語言是解釋性的語言,例如Python、javascript(目前接觸過的)等等,它不象c\c++等可以編譯成二進制代碼,以可執行檔案的形式存在。而腳本語言不需要編譯,可以直接用,由解釋器來負責解釋。

2.什麼是編譯語言?

  • 編譯語言是程式在執行之前需要一個專門的編譯過程,運作時不需要重新編譯,直接使用編譯的結果就行了,脫離其語言環境獨立執行。程式執行效率高,使用友善。但程式一旦需要修改,必須先修改源代碼,再重新編譯生成新的目标檔案才能執行。因需依賴編譯器,故跨平台性差些

3.兩者的差別

  • 抽象的級别不同: 腳本語言更抽象。在腳本語言中,存在有進階的資料結構,如清單和字典結構,和對這種結構簡單友善的嵌套和操作。編譯語言有比較明确的定義等等。
  • 類型定義不同: 腳本語言對類型的定義就比較松散,不需要類型聲明,而且在運作時自動進行動态類型檢查。而編譯語言通常是強類型定義或靜态定義,也就是說變量的類型在程式中指定了。
  • 執行方式不同: 腳本語言是解釋成指令被立即執行。這樣完全将編譯過程從編輯-編譯-運作循環中去掉了。而編譯語言的程式被編譯成可執行的二進制。
  • 運作速度不同: 腳本語言是解釋執行的,在運作時解釋每一條語句然後執行。這樣比編譯執行的語言要慢。而編譯語言因為編譯成機器碼,可以直接運作,是以在運作速度上快比較快。

4.為什麼稱Python為膠水語言?

  • 膠水語言:使用輸入輸出指令,接口,動态連結庫,靜态連結庫,服務,對象等。 
  • 标準版本的python是用C來編譯的,又稱為Cpython,除此之外,還有一些其他的python實作。
  • java實作版本。這個解釋器完全用java寫成,名為Jython。盡管和标準版的有差別,但是很小,而且啟動環境也完全相同
  1. jython的優點:隻要有虛拟機,就可以運作Jython
  2. 擁有通路java包與類庫的能力
  3. 為java開發環境提供了腳本引擎
  4. 鼓勵Python到java的開發
  • .net實作。用C#語言完成,名為IronPython。和jython差不多。

5.總結

在終端上我可以随意地組合他和其它程式,作為一個中間處理子產品。

而且,他可以如此地簡單便捷,一些簡單的腳本隻需要cat一下馬上就能明白是什麼意思。

一個表達式一行代碼,代碼塊有一緻的标準的縮進,标準的命名方式,簡練的語言,支援注釋……

别的程式要通路或調用,很簡單,一個指令把指定資料輸入到這裡就好,然後要怎麼拼接怎麼拼接; 
周期性地處理也沒問題,輸出到檔案,等待别的程式調用。 
系統腳本上:

比SHELL多了很多數學及字元串處理能力,還多了很多很好用的疊代方法,還多了很多的原生的資料結構; 
比PERL多了很要命的代碼可讀性。 
比起ruby和nodejs,他基本所有機器都預裝,而且已經經曆了時間的考驗。雖然,将來的确會有被這倆貨代替的可能性。 
比起C/C++,他多了一個終端、甚至像ipython這樣的加強版神器終端,可以邊調試代碼邊把沒問題的代碼寫進檔案。而且,源碼即可執行。