關於LUA原始碼分析學習教程是本文要介紹的內容,主要是來學習lua中關於源碼的內容,具體內容來看本文詳解。
原文是英文版的,利用一點時間翻譯成中文的。希望bina大蝦指點一二。
- ldebug.c - 調試介面:包含訪問調試鉤子的函數lua_sethook/lua_gethook/lua_gethookcount),訪問運行時堆棧資訊的函數
- lua_getstatck/lua_getlocal/lua_setlocal),檢查位元組碼函數luaG_checkopenop /luaG_checkcode),
- 和拋出錯誤的函數luaG_typeerror/luaG_concaterror /luaG_aritherror/luaG_ordererror/luaG_errormsg/luaG_runerror)
- lzio.c - 一個通用的帶緩衝區的輸入資料流介面
- lmem.c - 記憶體管理的介面.通過封裝記憶體配置函數,實現了luaM_realloc / luaM_growaux_兩個函數.
- lgc.c - 記憶體回收行程記憶體管理)
- lstate.c - 全域上下文. 包括開啟和關閉LUA上線文的函數(lua_newstate/lua_close)和lua線程函數(luaE_newthread/luaE_freethread)
- lobject.c - 一些針對Lua對象的通用函數。 包括資料類型到字串轉換函式,純資料相等測試函數luaO_rawequalObj),和日誌基礎2luaO_log2)
- lstring.c - 字串表儲存所有由Lua操作的字串集合)
- lfunc.c - 封裝原型和閉包的輔助函數
- ltable.c - Lua表實現雜湊)
- lcode.c - Lua的代碼產生器。被lparser.c使用
- llex.c - 此法分析器。被lparser.c使用
- lparser.c - Lua語法檢查器
- lundump.c - 載入先行編譯後的Lua代碼塊,函數luaU_undump,載入一個先行編譯後的代碼塊;luaU_header(被luaU_undump使用的內建函式),用來檢查函數頭部。
- ldump.c - 儲存先行編譯後的Lua代碼塊。函數luaU_dump,使用先行編譯後的代碼字串展示一個函數;
- lopcodes.c - Lua虛擬機器的操作符。定義所有操作符的名稱和資訊(使用luaP_opnames和luaP_opmodes兩個表儲存)
- lvm.c - Lua虛擬機器。執行位元組碼luaV_execute)。也暴漏一些lapi.c可能用到的函數例如:luaV_concat)
- ldo.c - Lua的棧和調用結構。控制函數調用luaD_call/luaD_pcall),棧增長,協同代碼的同步
- ltm.c - 標記原語方法。實現對象訪問原語方法(metathods)
- lbaselib.c - 基礎函數庫
- lstrlib.c - 字串庫
- ltable.c - 表操作庫
- lmathlib.c - 數學庫
- loslib.c - 作業系統相關庫
- liolib.c - 輸入輸入庫
- loadlib.c - 模組庫實現require函數,package函數)
- ldblib.c - 調試庫
- lapi.c - Lua的API.實現Lua C API(lua_*函數)集合
- lauxlib.c - 定義所有的luaL_*函數集
- linit.c - 實現luaL_openlibs方法,便於在C語言中載入上述模組
- lua.c - Lua獨立解譯器
- print.c - 定義 "PrintFunction?" 函數,用於在函數中列印位元組碼被luac.c中-l參數所用)
- luac.c - Lua編譯器儲存位元組碼到一個檔案,也可以列出位元組碼)
The prefix of a external symbol indicates the module it comes from:
外部符號的首碼暗示他來自哪一個檔案:
- luaA_ - lapi.c
- luaB_ - lbaselib.c
- luaC_ - lgc.c
- luaD_ - ldo.c
- luaE_ - lstate.c
- luaF_ - lfunc.c
- luaG_ - ldebug.c
- luaH_ - ltable.c
- luaI_ - lauxlib.c
- luaK_ - lcode.c
- luaL_ - lauxlib.c/h, linit.c (public functions)
- luaM_ - lmem.c
- luaO_ - lobject.c
- luaP_ - lopcodes.c
- luaS_ - lstring.c
- luaT_ - ltm.c
- luaU_ - lundump.c
- luaV_ - lvm.c
- luaX_ - llex.c
- luaY_ - lparser.c
- luaZ_ - lzio.c
- lua_? - lapi.c/h + luaconf.h, debug.c
- luai_ - luaconf.h
- luaopen_ - luaconf.h + libraries (lbaselib.c, ldblib.c, liolib.c, lmathlib.c, loadlib.c, loslib.c, lstrlib.c, ltablib.c)
小結:關於LUA原始碼分析學習教程的內容介紹完了,希望通過本文的學習能對你有所協助!