Appearance
开始学习 lua
- lua 的词法、语法解析,语义分析,代码生成 parse 完毕之后等到 AST,一个先进的编译器应该包含趣多的步骤:语义分析,类型检查/推导,代码优化,机器代码生成...
- lua 的 vm 虚拟机
- 标准库
- 二进制
想到哪就写到哪里,
通识整个项目,捋清楚思路之后再整理
Lua 虚拟机
对计算机的模拟和抽象,虚拟机的实现大致可以分为两类:基于栈和基于寄存器。5.0 以后
指令集
- 常量加载指令
- 运算符相关指令
- 循环和跳转指令
- 函数调用相关指令
- 表操作指令
- Upvalue 操作指令
指令的四种编码
- iABC -> A、B、C 三个操作数,8、9、9 位
- iABx -> A、Bx 两个操作数,8、18 位
- iAsBx -> A、sBx(有符号的整数),8、18 位
- iAx -> Ax 只携带一个操作数,占用 26bit。
Lua 编译器
标准库
名词解释
- sp stack pointer 栈指针
- ip Instruction pointer 指令指针
- pc