【Lua源碼分析系列】1. 概述

如題,這是一系列關於Lua的源碼分析的文章。分析的重點在編譯原理和虛擬機的部分,而不是相關的庫的實現部分。寫這系列文章,最初是由於想要設計一門編程語言以及它的虛擬機,爲此參考現有的優秀的實現。正則表達式

爲什麼選擇Lua?

其實本人更加想分析Javascript的v8引擎和Chakra引擎的,只是感受能力還不太夠。而Lua的實現至關小巧,只有幾萬行C代碼,與C/C++的互操做至關方便,而且實現的質量也是工業級別的,用來練手正合適。至於v8和Chakra,之後有機會再上。編程

出於邊學習邊分析的目的,寫下這系列文章,只是更新可能會比較慢,若能夠,本人儘可能一週更新一次,畢竟比較忙。數據結構

運行環境

基礎知識要求

  • 編譯原理:至少知道詞法分析和語法分析,能看懂正則表達式、產生式,知道相關術語。無需精通。編碼

  • C語言:熟悉指針用法。有多門編程語言基礎的更好。C語言是必須懂的。無需精通。lua

  • 數據結構:對常見的數據結構要有一些概念。操作系統

  • Lua語言:儘可能熟悉,無需精通。設計

源碼託管地址

分析過程當中在不改變官方實現的狀況下,本人將對官方的源代碼添加一些註釋。

後期補上,先佔個坑

參考資料

本系列文章的目錄(暫定)

  1. 概述

  2. 分析思路

  3. Lua 的編碼規範

  4. Lua 中重要的數據類型

  5. Lua 的運行過程

  6. Lua 的 opcode

  7. Lua 的虛擬機結構

  8. Lua 的詞法分析

  9. Lua 的語法分析

  10. Lua 的字節碼

相關文章
相關標籤/搜索