做cocos2d-x lua已经有一段时间了,想更深入了解lua。我会出一系列地
自身学习过程中地解读。
我会带大家沿着源码来逐步解读lua,我喜欢按照
深度优先遍历的顺序来解读源码,对于Lua源码中命名不好或者晦涩难懂的地方,我都会在写的时候加以
适当地修改,若有错误或者依然不清晰,欢迎评论区指正。很多思路和解释,我都
会在代码编辑区写上注释,所以务必不要忽略。
虚拟机核心相关文件列表
文件名 | 作用 | 对外接口前缀 |
---|
lapi.c | C语言接口 | lua_ |
lcode.c | 源码生成器 | luaK_ |
ldebug.c | 调试库 | luaG_ |
ldo.c | 函数调用及栈管理 | luaD_ |
ldump.c | 序列化预编译的lua字节码 | luaU_ |
lfunc.c | 提供操作函数原型及闭包的辅助函数 | luaF_ |
lgc.c | GC | luaC_ |
llex.c | 词法分析 | luaX_ |
lmem.c | 内存管理 | luaM_ |
lobject.c | 对象管理 | luaO_ |
lopcodes.c | 字节码操作 | luaP_ |
lparser.c | 分析器 | luaY_ |
lstate.c | 全局状态机 | luaE_ |
lstring.c | 字符串操作 | luaS_ |
ltable.c | 表操作 | luaH_ |
lundump.c | 加载预编译字节码 | luaU_ |
ltm.c | tag方法 | luaT_ |
lzio.c | 缓存流接口 | luaZ_ |
lbaselib.c | 基础库接口 | luaB_ |
内嵌库相关文件
文件名 | 作用 |
---|
lauxlib.c | 库编写时需要涌到的辅助函数库 |
lbaselib.c | 基础库 |
ldblib.c | 调试库 |
liolib.c | IO库 |
lmathlib.c | 数学库 |
loslib.c | OS库 |
ltablib.c | 表操作库 |
lstrlib.c | 字符串操作库 |
loadlib.c | 动态扩展库加载器 |
linit.c | 负责内嵌库的初始化 |
解释器,字节码编译器相关的文件
文件名 | 作用 |
---|
lua.c | 解释器 |
luac.c | 字节码编译器 |