• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            的筆記

            隨時隨地編輯

            LUA源碼分析上

            主題

            LUA源碼分析上
            http://3dlearn.googlecode.com/files/LUA源碼分析上.pdf
            (非chrome下載文件名有亂碼需要自己重命名)
            適合初學lua源碼參考之用,本文作為上部分還未深入分析lua的實現原理。恩,要遵守原則。

            目錄

            LUA源碼分析(上) 0
            有分享交流才有進步,永遠不要固步自封 0
            目 錄 1
            1 參考資料 5
            2 閱讀說明 6
            2.1 閱讀本文的方式 6
            2.2 源碼閱讀順序 6
            2.3 Lapi 7
            2.3.1 index2addr 9
            2.3.2 lua_setfield 11
            2.4 Lobject 12
            2.4.1 Value 12
            2.4.2 TString 13
            2.4.3 Udata 13
            2.4.4 Upvaldesc 14
            2.4.5 LocVar 14
            2.4.6 Proto 14
            2.4.7 UpVal 14
            2.4.8 CClosure 15
            2.4.9 LClosure 15
            2.4.10 Closure 15
            2.4.11 Tkey 15
            2.4.12 Node 15
            2.4.13 Table 15
            2.4.14 重要宏 16
            2.5 Lstate 16
            2.5.1 不公開結構LG 18
            2.5.2 CallInfo結構 19
            2.5.3 global_State結構 19
            2.5.4 lua_State結構 21
            2.5.5 lua_newstate 22
            2.6 Llex 27
            1.1 Lopcodes 27
            1.1.1 四種指令格式 27
            1.1.2 指令集 27
            1.1.3 指令定義 30
            1.2 Lvm 31
            1.2.1 過程 31
            1.2.2 過程調用 32
            1.2.3 luaV_execute 33
            1.3 Ldo( Stack and Call structure) 34
            1.3.1 公開過程 35
            1.3.2 luaD_pcall 35
            1.3.3 luaD_protectedparser 35
            1.4 Lstring 36
            1.4.1 luaS_newlstr 36
            1.4.2 luaS_newudata 37
            1.5 Ltable(hash tables) 37
            1.6 Ltm(Tag methods) 37
            1.6.1 luaT_init 38
            1.6.2 luaT_gettm 38
            1.7 Ldebug 38
            1.7.1 過程表 38
            1.8 Lparser\lcode(遞歸下降分析器) 39
            1.8.1 數據結構 39
            1.9 Lgc(增量\漸進垃圾回收器) 39
            2 編碼規范與約定 40
            2.1 標識符慣用法 40
            2.2 接口代碼約定 40
            3 基礎數據結構 41
            3.1 等價C類型 41
            3.1.1 string 41
            3.1.2 array 41
            4 全局變量 43
            4.1 腳本層全局對象 43
            4.1.1 查看全局變量 43
            4.1.2 全局變量 43
            4.2 引擎全局對象 44
            5 架構 45
            5.1 文件結構 45
            5.1.1 文件結構 45
            5.2 文件點評 48
            5.3 模塊劃分 48
            6 引擎核心 49
            6.1 緣起緣滅 49
            6.1.1 展開為非核心對象 55
            6.1.2 展開為核心對象 55
            6.2 狀態機 56
            6.2.1 CallInfo(L->ci) 58
            6.2.2 CallInfo位狀態(Bits in CallInfo status) 58
            7 虛擬機 59
            8 閉包 59
            9 垃圾回收 59
            10 CASE 60
            10.1 初始化和加載腳本 60
            10.2 Lua runtime code reading Lua運行期源代碼分析閱讀 60
            10.3 加載腳本 61
            10.4 執行字節碼 63
            10.5 創建math庫 66
            10.6 set\get方法辨析 69
            11 調試與分析 70
            11.1 VM Code 70
            11.2 LuaCov 71
            11.3 LDT 71
            11.4 lua調試器:運行時的值查看 72
            12 基礎模型 73
            13 語法糖 73
            13.1 類實現 73
            13.2 類型轉換 75
            13.3 LUA_CORE 75
            13.3.1 定義動態庫 76
            13.3.2 定義標準操作 76
            13.3.3 打開MS compiler匯編 77
            13.3.4 數據包裝技巧 78
            14 疑問 80
            14.1 Tvaluefields為何重復定義? 80
            14.2 如何區分棧中表和普通類型? 80
            = 附錄 = 81
            15 元編程METAPROGRAMMING 81
            16 閉包 CLOSURE 81
            16.1 C 閉包 82
            16.2 C++閉包 82
            17 基礎數據類型數據長度 83
            18 THE COMPLETE SYNTAX OF LUA 83
            19 遞歸下降分析器(RECURSIVE DESCENT PARSER) 84
            20 垃圾回收器 85
            20.1 基礎算法 85
            20.2 貝姆垃圾收集器 85
            21 LUA 5.1 C API 86
            21.1 Push data 86
            21.2 Check data 86
            21.3 Get data checked 86
            21.4 Get data converted 87
            21.5 Get data with defaults 87
            21.6 Stack operator 87
            21.7 Value operator 88
            21.8 Table 88
            21.9 Global data 88
            21.10 Call function 89
            21.11 Load or call Lua code 89
            21.12 Debugging 89
            21.13 Buffer 90
            21.14 Thread 90
            21.15 Library 90
            21.16 Misc 91
            21.17 Basic types 91

            posted on 2012-04-29 15:46 的筆記 閱讀(5100) 評論(7)  編輯 收藏 引用

            評論

            # re: LUA源碼分析上 2012-04-29 17:19 zgpxgame

            文件壞掉了?下載了打不開  回復  更多評論   

            # re: LUA源碼分析上 2012-04-29 17:38 OGRE_蟲子

            怎么下載啊?  回復  更多評論   

            # re: LUA源碼分析上 2012-04-29 22:30 夸父的筆記

            @zgpxgame
            @OGRE_蟲子
            好了  回復  更多評論   

            # re: LUA源碼分析上[未登錄] 2013-06-21 19:43 shongbee2

            自己整理的啊。。謝謝分享  回復  更多評論   

            # re: LUA源碼分析上 2014-03-20 16:36 zr

            請問文件中代碼調用圖你是用什么軟件生成的?
            ps:文中代碼風格看著很舒服,能不能也透漏下是哪種軟件的style?  回復  更多評論   

            # re: LUA源碼分析上 2014-05-01 00:36 夸父的筆記

            @zr 有的是doxygen生成的,有的是understand生成的,再有的是PS的
              回復  更多評論   

            # re: LUA源碼分析上[未登錄] 2014-05-11 16:34 me

            忘了回你代碼格式用的VC自帶的@zr
              回復  更多評論   

            久久强奷乱码老熟女网站| 亚洲精品乱码久久久久久不卡| 欧美精品国产综合久久| 久久综合九色欧美综合狠狠| 亚洲精品WWW久久久久久| 国产一级持黄大片99久久| 狠狠色丁香婷婷久久综合五月| 久久国产乱子伦精品免费午夜| 88久久精品无码一区二区毛片 | 国产午夜久久影院| 麻豆成人久久精品二区三区免费| 成人久久免费网站| 伊人久久大香线焦AV综合影院| 老男人久久青草av高清| 伊人色综合久久天天人手人婷 | 久久综合狠狠综合久久97色| 亚洲午夜无码AV毛片久久| 性做久久久久久久久久久| 亚洲午夜无码久久久久小说| 国产亚洲精久久久久久无码77777 国产亚洲精品久久久久秋霞 | 久久中文字幕视频、最近更新| 久久久WWW成人免费精品| 久久伊人精品青青草原日本| 99久久这里只精品国产免费| 亚洲精品tv久久久久久久久| 精品国际久久久久999波多野| 国产精品久久一区二区三区| 色综合久久综合网观看| 久久精品国产第一区二区| 亚洲国产高清精品线久久| 奇米影视7777久久精品| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久91精品国产91| 久久九九精品99国产精品| 99久久免费国产精品| 思思久久99热只有频精品66| 国产欧美久久久精品| 久久久久无码国产精品不卡| 天天躁日日躁狠狠久久| 久久AAAA片一区二区| 欧洲人妻丰满av无码久久不卡|