關於LUA源代碼分析學習教程

【zz】http://mobile.51cto.com/iphone-286254.htm

關於LUA源代碼分析學習教程是本文要介紹的內容,主要是來學習lua中關於源碼的內容,具體內容來看本文詳解。

原文是英文版的,利用一點時間翻譯成中文的。希望bina大蝦指點一二。

  1. ldebug.c - 調試接口:包含訪問調試鉤子的函數(lua_sethook/lua_gethook/lua_gethookcount),訪問運行時堆棧信息的函數 
  2. (lua_getstatck/lua_getlocal/lua_setlocal),檢查字節碼函數(luaG_checkopenop /luaG_checkcode),
  3. 和拋出錯誤的函數(luaG_typeerror/luaG_concaterror /luaG_aritherror/luaG_ordererror/luaG_errormsg/luaG_runerror)  
  4. lzio.c -  一個通用的帶緩衝區的輸入流接口  
  5. lmem.c - 內存管理的接口.通過封裝內存分配函數,實現了luaM_realloc / luaM_growaux_兩個函數.  
  6. lgc.c -  垃圾回收器(內存管理)  
  7. lstate.c - 全局上下文. 包括打開和關閉LUA上線文的函數(lua_newstate/lua_close)和lua線程函數(luaE_newthread/luaE_freethread)  
  8. lobject.c - 一些針對Lua對象的通用函數。 包括數據類型到字符串轉換函數,純數據相等測試函數(luaO_rawequalObj),和日誌基礎2(luaO_log2)  
  9. lstring.c - 字符串表(保存所有由Lua操作的字符串集合)  
  10. lfunc.c - 包裝原型和閉包的輔助函數  
  11. ltable.c - Lua表實現(哈希)  
  12. lcode.c - Lua的代碼生成器。被lparser.c使用  
  13. llex.c - 此法分析器。被lparser.c使用  
  14. lparser.c - Lua語法檢查器  
  15. lundump.c - 加載預編譯後的Lua代碼塊,函數luaU_undump,加載一個預編譯後的代碼塊;luaU_header(被luaU_undump使用的內部函數),用來檢查函數頭部。  
  16. ldump.c - 保存預編譯後的Lua代碼塊。函數luaU_dump,使用預編譯後的代碼字符串展示一個函數;  
  17. lopcodes.c - Lua虛擬機的操作符。定義所有操作符的名稱和信息(使用luaP_opnames和luaP_opmodes兩個表保存)  
  18. lvm.c - Lua虛擬機。執行字節碼(luaV_execute)。也暴漏一些lapi.c可能用到的函數(例如:luaV_concat)  
  19. ldo.c - Lua的棧和調用結構。控制函數調用(luaD_call/luaD_pcall),棧增長,協同代碼的同步  
  20. ltm.c - 標記原語方法。實現對象訪問原語方法(metathods)  
  21. lbaselib.c - 基礎函數庫  
  22. lstrlib.c - 字符串庫  
  23. ltable.c - 表操作庫  
  24. lmathlib.c - 數學庫  
  25. loslib.c - 操作系統相關庫  
  26. liolib.c - 輸入輸入庫  
  27. loadlib.c - 模塊庫(實現require函數,package函數)  
  28. ldblib.c - 調試庫  
  29. lapi.c - Lua的API.實現Lua C API(lua_*函數)集合  
  30. lauxlib.c - 定義所有的luaL_*函數集  
  31. linit.c - 實現luaL_openlibs方法,便於在C語言中加載上述模塊  
  32. lua.c - Lua獨立解釋器  
  33. print.c - 定義 "PrintFunction?" 函數,用於在函數中打印字節碼(被luac.c中-l參數所用)  
  34. luac.c - Lua編譯器(保存字節碼到一個文件,也可以列出字節碼) 

The prefix of a external symbol indicates the module it comes from:

外部符號的前綴暗示他來自哪一個文件:

  1. luaA_ - lapi.c  
  2. luaB_ - lbaselib.c  
  3. luaC_ - lgc.c  
  4. luaD_ - ldo.c  
  5. luaE_ - lstate.c  
  6. luaF_ - lfunc.c  
  7. luaG_ - ldebug.c  
  8. luaH_ - ltable.c  
  9. luaI_ - lauxlib.c  
  10. luaK_ - lcode.c  
  11. luaL_ - lauxlib.c/h, linit.c (public functions)  
  12. luaM_ - lmem.c  
  13. luaO_ - lobject.c  
  14. luaP_ - lopcodes.c  
  15. luaS_ - lstring.c  
  16. luaT_ - ltm.c  
  17. luaU_ - lundump.c  
  18. luaV_ - lvm.c  
  19. luaX_ - llex.c  
  20. luaY_ - lparser.c  
  21. luaZ_ - lzio.c  
  22. lua_? - lapi.c/h + luaconf.h, debug.c  
  23. luai_ - luaconf.h  
  24. luaopen_ - luaconf.h + libraries (lbaselib.c, ldblib.c, liolib.c, lmathlib.c, loadlib.c, loslib.c, lstrlib.c, ltablib.c) 

小結:關於LUA源代碼分析學習教程的內容介紹完了,希望通過本文的學習能對你有所幫助!


發佈了23 篇原創文章 · 獲贊 9 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章