編譯器是整體編譯再執行,而解釋器是邊解釋便執行。
舉個簡單的例子,編譯器就相當於你買了一桶海底撈,那麼所有海底撈食材都是整體「編譯」好,只要通過倒水(執行)就可以吃,而解釋器相當於你去海底撈門店,然後菜是一道一道上(一條一條解釋這是啥菜),你是一道一道放入湯中吃(執行)。
編譯器 的特點是:
解釋器 的特點是:
python的源文件通過解釋器進行模塊的載入及鏈接,然後將解釋完成的位元組碼存入內存,提供給CPU進行操作,然後寫入本地的.pyc文件,其觸發條件是判斷 是否存在.pyc文件+比較源文件與編譯的.pyc文件的時間戳
⑵ Python用什麼編譯器
python 是一門腳本語言,只有解釋器,不需要編譯。代碼編輯器的話,只要能打開寫代碼就行了。
⑶ 如何選擇一個可用的Python翻譯器
有兩種常見的編譯器。
python常用的編譯器就只有兩個:LLVM後端的numba和支持大部分C++編譯器作為後端的nuitka,這倆區別很大。其實寫python除了部分需求(比如打包發布或者進行科學計算或者有性能瓶頸),一般用不到編譯器。
⑷ python解釋器
python解釋器的介紹:
解釋器由一個編譯器和一個虛擬機構成,編譯器負責將源代碼轉換成位元組碼文件,而虛擬機負責執行位元組碼。
所以,解釋型語言其實也有編譯過程,只不過這個編譯過程並不是直接生成目標代碼,而是中間代碼(位元組碼),然後再通過虛擬機來逐行解釋執行位元組碼。
計算機的大腦是CPU, 中文名叫中央處理器,它仍然不能直接處理 Python 語言。CPU 只能直接處理機器指令語言,那是一種由0和1數字組成的語言,這是一種我們人很難直接寫出來的語言。
所以,我們需要一個翻譯,把Python語言翻譯成 計算機CPU 能聽懂的機器指令語言,這樣計算機才能按照 我們的Python程序的要求去做事。.py結尾的文件需要解釋器去運行執行。
執行過程原理:
1.執行 python XX.py 後,將會啟動 Python 的解釋器。
2.python解釋器的編譯器會將.py源文件編譯(解釋)成位元組碼生成PyCodeObject位元組碼對象存放在內存中。
3.python解釋器的虛擬機將執行內存中的位元組碼對象轉化為機器語言,虛擬機與操作系統交互,使機器語言在機器硬體上運行。
4.運行結束後python解釋器則將PyCodeObject寫回到pyc文件中。當python程序第二次運行時,首先程序會在硬碟中尋找pyc文件,如果找到,則直接載入,否則就重復上面的過程。
Python解釋器執行程序的三個階段:
第一步:先啟動python3解釋器。
第二步:Python3解釋器就像一個文本編輯器一樣將文件python3 D: est.py從硬碟讀入內存。
第三步:Python3解釋器解釋執行文件代碼。
只有第三階段才識別python的語法。
⑸ python.3.8是編譯器嗎
安裝python自帶官方解釋器,查看解釋器路徑用命令行輸入:
import sys
print(sys.executable)
解釋器和編譯器一樣都是負責把高級語言翻譯成機器語言的。
區別是編譯器先整體翻譯後再執行。解釋器是邊執行邊翻譯。
編譯器的好處是編譯後運行就不依耐編譯器了,運行的速度較快,但稍微有代碼改動,整體都要重新編譯。
而解釋器,運行時離不開解釋器環境,好處是改動時不需要整體編譯。
⑹ Python編譯器是什麼解釋器是什麼
python一般是解釋執行的……就是說通常情況下是直接解釋(或者說你不知道有編譯這個過程)
python實際執行的時候會將代碼編譯成位元組碼的pyc文件(這一步是編譯,由編譯器負責)之後執行pyc當中的位元組碼(這一步是解釋器的工作,為了避免每次運行都要編譯加快速度)
⑺ python有什麼好的入門教程用什麼編譯器呢
python是一門動態解釋性語言不像c語言一樣還有編譯器,動態語言都是對應一個解釋器,python的解釋器有很多版本,其中用得最多最廣泛的是cpython,大家一提python基本就是值得喜歡個版本,目前cpython已經更新到3.9版本,希望可以幫到你
⑻ 學python用什麼編譯器啊,哪位大佬推薦一下
1、CPython
是Python語言規范的參考實現,能夠優先獲得Python語言的最新、最強的功能,CPython是由C語言編寫而成,不但可以從Python代碼中調用C代碼的函數,還可以直接在Python中使用大量現有的C代碼庫。
2、Brython
Brython可用於在瀏覽器中運行包含了Python 3腳本的Web應用。
3、PyPy Python
雖然第一個推薦的是在Python中使用最廣泛的編譯器,但卻不是最快的,PyPy採用的是即時的編譯概念,在代碼執行前,就直接編譯為機器代碼,因此其執行速度提高了近4倍。
4、Jython或JPython
使用率第二高,Jython最初被稱為JPython,是通過Python語言來實現Java虛擬機的,開發者既可以將現有的Java包和代碼庫,導入自己的Python程序中,還可以在Java程序中嵌入Python腳本。
5、Cython
Cython與CPython不同,更像是一個超集,允許開發者在代碼中結合C和Python,從而生成C語言代碼類型的輸出,以供任何一種C/C++編譯器進行後續編譯。
6、Skulpt
流行的速度非常快,主要目的是提供一種良好的在線式Python編譯器,也可以通過讓Web應用引擎包含Skulpt,以方便開發者編寫出被用於前端的Python腳本。
7、PyJS
是另一款完全用Python去開發Web應用的編譯工具,在後台,PyJS會在使用內置的Ajax框架之前,將Python代碼編譯為JavaScript。
8、WinPython
是Python的"即用型"發行版,也就意味著用戶無需安裝,即可在Windows PC上運行,作為另一種Python的實現,WinPython編譯器不僅帶來了Python執行環境,而且還包含了諸如:Scipy、Numpy、以及Pandas等各種Python庫。
⑼ 學習Python建議用什麼編譯器
LLVM後端的numba和支持大部分C++編譯器作為後端的nuitka。
Python由荷蘭數學和計算機科學研究學會的Guido van Rossum於1990 年代初設計,作為一門叫做ABC語言的替代品。
Python提供了高效的高級數據結構,還能簡單有效地面向對象編程。Python語法和動態類型,以及解釋型語言的本質,使它成為多數平台上寫腳本和快速開發應用的編程語言,隨著版本的不斷更新和語言新功能的添加,逐漸被用於獨立的、大型項目的開發。
Python解釋器易於擴展,可以使用C或C++(或者其他可以通過C調用的語言)擴展新的功能和數據類型。Python 也可用於可定製化軟體中的擴展程序語言。Python豐富的標准庫,提供了適用於各個主要系統平台的源碼或機器碼。
Python是一門跨平台的腳本語言,Python規定了一個Python語法規則,實現了Python語法的解釋程序就成為了Python的解釋器。
簡單講,編譯器就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。
一個現代編譯器的主要工作流程:源代碼 (source code) →預處理器(preprocessor) → 編譯器 (compiler) →目標代碼(object code) →鏈接器(Linker) → 可執行程序(executables)。
高級計算機語言便於人編寫,閱讀交流,維護。機器語言是計算機能直接解讀、運行的。編譯器將匯編或高級計算機語言源程序(Source program)作為輸入,翻譯成目標語言(Target language)機器代碼的等價程序。
源代碼一般為高級語言 (High-level language), 如Pascal、C、C++、Java、漢語編程等或匯編語言,而目標則是機器語言的目標代碼(Object code),有時也稱作機器代碼(Machine code)。
對於C#、VB等高級語言而言,此時編譯器完成的功能是把源碼(SourceCode)編譯成通用中間語言(MSIL/CIL)的位元組碼(ByteCode)。最後運行的時候通過通用語言運行庫的轉換,編程最終可以被CPU直接計算的機器碼(NativeCode)。