如題,這是一系列關於Lua的源碼分析的文章。分析的重點在編譯原理和虛擬機的部分,而不是相關的庫的實現部分。寫這系列文章,最初是由於想要設計一門編程語言以及它的虛擬機,爲此參考現有的優秀的實現。正則表達式
其實本人更加想分析Javascript的v8引擎和Chakra引擎的,只是感受能力還不太夠。而Lua的實現至關小巧,只有幾萬行C代碼,與C/C++的互操做至關方便,而且實現的質量也是工業級別的,用來練手正合適。至於v8和Chakra,之後有機會再上。編程
出於邊學習邊分析的目的,寫下這系列文章,只是更新可能會比較慢,若能夠,本人儘可能一週更新一次,畢竟比較忙。數據結構
Windows10 64位操做系統源碼分析
VS2015學習
編譯原理:至少知道詞法分析和語法分析,能看懂正則表達式、產生式,知道相關術語。無需精通。編碼
C語言:熟悉指針用法。有多門編程語言基礎的更好。C語言是必須懂的。無需精通。lua
數據結構:對常見的數據結構要有一些概念。操作系統
Lua語言:儘可能熟悉,無需精通。設計
分析過程當中在不改變官方實現的狀況下,本人將對官方的源代碼添加一些註釋。
後期補上,先佔個坑
後期補上,先佔個坑
概述
分析思路
Lua 的編碼規範
Lua 中重要的數據類型
Lua 的運行過程
Lua 的 opcode
Lua 的虛擬機結構
Lua 的詞法分析
Lua 的語法分析
Lua 的字節碼