關於LUA原始碼分析學習教程

來源:互聯網
上載者:User

關於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),和日誌基礎2luaO_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原始碼分析學習教程的內容介紹完了,希望通過本文的學習能對你有所協助!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.