編譯過程
編譯系統的執行過程
原始碼 –> 機器程式碼
- 直譯器執行程式的方法
1.直接執行高階程式語言
2.轉換高階程式語言碼到一些有效率的位元組碼(Bytecode),並執行這些位元組碼
- Python解釋語言特點
“拆解”程式碼:
-
首先當使用者鍵入程式碼交給Python處理的時候會先進行此法分析,例如使用者鍵入關鍵字或者當輸入關鍵字有誤時,都會被此法分析所觸發,不正確的程式碼將不會被執行
-
下一步Python會進行語法分析,例如當”for i in test:”中,test後面的冒號如果寫成其他符號,程式碼依舊不會被執行
-
在執行Python前,Python會生成.pyc檔案,這個檔案就是位元組碼1
-
如果不小心修改了位元組碼,Python下次重新編譯該程式時會和其上次生成的位元組碼檔案進行比較,如果不匹配則將會被修改過的位元組碼檔案進行覆蓋,以確保每次編譯後位元組碼的準確性。
-
位元組碼在Python虛擬機器程式裡對應的是PyCodeObject物件。.pyc檔案是位元組碼在磁碟上的表現形式。簡單來說就是在編譯程式碼的過程中,首先會將程式碼中的函式、類等物件分類處理,然後生成位元組碼檔案。有了位元組碼檔案,CPU可以直接識別位元組碼檔案進行處理,接著Python就可執行了。↩
知識在於點滴積累
相關文章
- Javac編譯過程Java編譯
- 編譯核心過程編譯
- 編譯器的編譯基本過程編譯
- 編譯連結過程編譯
- 編譯過程簡介編譯
- C++ 編譯過程C++編譯
- ios底層 編譯過程iOS編譯
- 編譯器的工作過程編譯
- EVC編譯TCPMP的過程編譯TCP
- .NET 程式碼編譯過程編譯
- glade 編譯過程 (轉)編譯
- GCC編譯過程(預處理->編譯->彙編->連結)GC編譯
- GCC編譯和連結過程GC編譯
- JavaScript的預編譯過程分析JavaScript編譯
- go語言編譯過程概述Go編譯
- 預編譯過程(AO+GO)編譯Go
- C程式編譯過程淺析C程式編譯
- Android 專案編譯過程Android編譯
- Android Makefile 編譯過程分析Android編譯
- 編譯C++ 程式的過程編譯C++
- Hive SQL 編譯過程詳解HiveSQL編譯
- C語言編譯全過程C語言編譯
- 儲存過程編譯時卡死儲存過程編譯
- [轉]:xmake編譯配置過程詳解編譯
- 詳解Linux 程式編譯過程Linux編譯
- 3- C語言編譯過程C語言編譯
- vlc-android 的編譯過程Android編譯
- C語言編譯過程簡介C語言編譯
- oracle 儲存過程重新編譯方法Oracle儲存過程編譯
- 編譯器的工作過程和原理編譯
- C/C++編譯過程詳解C++編譯
- 儲存過程編譯時會卡死儲存過程編譯
- 交叉編譯Qt/E和Qtopia過程編譯QT
- gcc 從語言編譯全過程 預處理---->編譯---->彙編----->連結GC編譯
- vue原理:diff、模板編譯、渲染過程等Vue編譯
- 建立儲存過程編譯無效物件儲存過程編譯物件
- iOS編譯過程的原理和應用iOS編譯
- 初探 Go 的編譯命令執行過程Go編譯