解釋型語言的特點與理解


 

 解釋型語言是什么?對比編譯型語言有什么區別?

  為了將高級語言轉換成計算機能識別的機器語言,需要一個‘翻譯’過程。即編譯或者解釋

 

編譯型語言
  編譯型語言的程序只要經過編譯器編譯之后,
每次運行程序都可以直接運行,不需要再次'翻譯'
  優點:執行速度快。
  缺點:可移植性差,因為編譯需要對操作系統的庫做出鏈接,所以程序運行時需要用到特定的系統庫

解釋型語言
  
解釋語言編寫的程序在每次運行時都需要通過解釋器對程序進行動態解釋和執行
即解釋一條代碼,執行一條
  優點:可移植好,因為只需要各種系統有python解釋器便可運行,不需要亂七八糟的系統庫支持
  缺點:執行速度慢,因為相比直接執行,多了一個翻譯過程

額外知識:腳本語言
  腳本語言也算是解釋器語言的一個子集。
特點:由文本儲存,可直接運行
例如:你建立了一個程序,叫aa.exe,可以打開.aa為擴展名的文件.
      你為.aa文件的編寫指定了一套規則(語法),當別人編寫了.aa文件后,你的程序用這種規則來理解編寫人的意圖,並作出回應.那么,這一套規則就是腳本語言

擴展知識:動態語言
  
一類在運行時可以改變其結構的語言 
運行時發現數據類型,運行時可變其結構的語言
例如:不需要事先聲明變量類型,同一變量可以被賦值為不同的對象類型
並且,運行時可以動態引進新的函數、對象、類,或將已有的函數可以被刪除或是其他結構上的變化


python解釋器的種類和特點?

  根據實現該解釋器的語言分類
cpython,PyPy,Jython,Ironpython。分別是c語言,python,java,.net。
當然最常用的是cpython,因為其庫最全
值得注意的是,PyPy采用的技術可以顯著提高運行速度

  根據交互方式分類
ipython:基於CPython之上的一個交互式解釋器,對於用戶交互非常好

 

python解釋器的執行程序的流程?

Python首先先把代碼(.py文件)編譯成半成品的字節碼,然后將其交給虛擬機,虛擬機一條一條將字節碼指令翻譯成cpu可識別的機器指令交由CPU執行,從而完成程序的執行。
額外知識:什么是字節碼?
字節碼是一種中間狀態(中間碼)的二進制代碼,包含執行程序、由一序列 op 代碼/數據對。不能直接被CPU執行,
需要直譯器轉譯后才能成為機器碼。機器碼便能被CPU執行

具體流程
第一步:python解釋器啟動,此時就相當於啟動了一個文本編輯器
第二步:從硬盤上將test.py的文件內容讀入到內存中並翻譯為字節碼
  注意:解釋器只關心文件內容,不關心文件后綴名
第三步:python解釋器解釋執行剛剛加載到內存中test.py的代碼

擴展知識:被執行的python代碼和解釋器綁定在一起
  python進程其實就是解釋器進程,解釋器進程讀取代碼,呈現不同的效果。

 

附:python解釋器的常用參數命令
python -i test.py 
運行后交互
python -m pdb test.py 
運行后調試
python -O test.py
關閉斷言
python -OO test.py
去掉assert語句和__doc__文檔字符串

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM