lua源码阅读笔记与思路整理一

本文记录了作者深入理解Lua源码的旅程,从local变量的声明与赋值,到函数的解析与执行过程,详细剖析了luaY_parser如何生成Proto对象,以及如何创建和执行闭包。内容涵盖local变量的生命周期,字节码生成,以及Lua函数调用的关键步骤。
摘要由CSDN通过智能技术生成

由于工作需要用了很多年的lua编写各种逻辑处理模块,今天心血来潮,决定深入了解一下lua源码的实现,目的是方便自己的lua代码调试,省的每次都用print打印这种原始手段,本“长篇小说“ 主要弄懂以下的问题:

1 local , global, upvalue 的原理和实现,upvalue的查找和递归标记是什么?

2 Function是什么,执行过程如何,参数如何传递,怎么分配栈上空间?

3 循环结构的实现

4 模块的实现,closure是什么

5 各种元表的实现,基本类型的元表如何增加(lua内部职能给table加元表,number,string这些都需要外部增加)

6 各种库方法的实现,如debug, math, string, os库等,浏览一遍有个概念即可

7 判断和跳转的实现

8 钩子函数的实现和应用

9 报错是如何组织的,各项信息在哪里保存的,又如何获取?

10 lua常量是什么,为什么要共享同一份常量?

11 gc回收是什么,如何实现的,流程是什么?

12 table类型的存储和访问,分数组类型和哈希类型

 

万里执行始于足下:先从最简单的local变量开始:

一、主要流程先表述一下:解析lua语言,生成c代码  >>>>>  调用c代码

前面的各种函数调用封装,检测错误封装暂且不表,直接进入最终解析语法的开始函数这: f_par

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值