【zz】http://mobile.51cto.com/iphone-286254.htm
關於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),和日誌基礎2(luaO_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源代碼分析學習教程的內容介紹完了,希望通過本文的學習能對你有所幫助!