关于LUA源代码分析学习教程是本文要介绍的内容,主要是来学习lua中关于源码的内容,具体内容来看本文详解。
原文是英文版的,利用一点时间翻译成中文的。希望bina大虾指点一二。
复制
ldebug.c - 调试接口:包含访问调试钩子的函数(lua_sethook/lua_gethook/lua_gethookcount),访问运行时堆栈信息的函数 (lua_getstatck/lua_getlocal/lua_setlocal),检查字节码函数(luaG_checkopenop /luaG_checkcode), 和抛出错误的函数(luaG_typeerror/luaG_concaterror /luaG_aritherror/luaG_ordererror/luaG_errormsg/luaG_runerror) lzio.c - 一个通用的带缓冲区的输入流接口 lmem.c - 内存管理的接口.通过封装内存分配函数,实现了luaM_realloc / luaM_growaux_两个函数. lgc.c - 垃圾回收器(内存管理) lstate.c - 全局上下文. 包括打开和关闭LUA上线文的函数(lua_newstate/lua_close)和lua线程函数(luaE_newthread/luaE_freethread) lobject.c - 一些针对Lua对象的通用函数。 包括数据类型到字符串转换函数,纯数据相等测试函数(luaO_rawequalObj),和日志基础2(luaO_log2) lstring.c - 字符串表(保存所有由Lua操作的字符串集合) lfunc.c - 包装原型和闭包的辅助函数 ltable.c - Lua表实现(哈希) lcode.c - Lua的代码生成器。被lparser.c使用 llex.c - 此法分析器。被lparser.c使用 lparser.c - Lua语法检查器 lundump.c - 加载预编译后的Lua代码块,函数luaU_undump,加载一个预编译后的代码块;luaU_header(被luaU_undump使用的内部函数),用来检查函数头部。 ldump.c - 保存预编译后的Lua代码块。函数luaU_dump,使用预编译后的代码字符串展示一个函数; lopcodes.c - Lua虚拟机的操作符。定义所有操作符的名称和信息(使用luaP_opnames和luaP_opmodes两个表保存) lvm.c - Lua虚拟机。执行字节码(luaV_execute)。也暴漏一些lapi.c可能用到的函数(例如:luaV_concat) ldo.c - Lua的栈和调用结构。控制函数调用(luaD_call/luaD_pcall),栈增长,协同代码的同步 ltm.c - 标记原语方法。实现对象访问原语方法(metathods) lbaselib.c - 基础函数库 lstrlib.c - 字符串库 ltable.c - 表操作库 lmathlib.c - 数学库 loslib.c - 操作系统相关库 liolib.c - 输入输入库 loadlib.c - 模块库(实现require函数,package函数) ldblib.c - 调试库 lapi.c - Lua的API.实现Lua C API(lua_*函数)集合 lauxlib.c - 定义所有的luaL_*函数集 linit.c - 实现luaL_openlibs方法,便于在C语言中加载上述模块 lua.c - Lua独立解释器 print.c - 定义 "PrintFunction?" 函数,用于在函数中打印字节码(被luac.c中-l参数所用) luac.c - Lua编译器(保存字节码到一个文件,也可以列出字节码)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
The prefix of a external symbol indicates the module it comes from:
外部符号的前缀暗示他来自哪一个文件:
复制
luaA_ - lapi.c luaB_ - lbaselib.c luaC_ - lgc.c luaD_ - ldo.c luaE_ - lstate.c luaF_ - lfunc.c luaG_ - ldebug.c luaH_ - ltable.c luaI_ - lauxlib.c luaK_ - lcode.c luaL_ - lauxlib.c/h, linit.c (public functions) luaM_ - lmem.c luaO_ - lobject.c luaP_ - lopcodes.c luaS_ - lstring.c luaT_ - ltm.c luaU_ - lundump.c luaV_ - lvm.c luaX_ - llex.c luaY_ - lparser.c luaZ_ - lzio.c lua_? - lapi.c/h + luaconf.h, debug.c luai_ - luaconf.h luaopen_ - luaconf.h + libraries (lbaselib.c, ldblib.c, liolib.c, lmathlib.c, loadlib.c, loslib.c, lstrlib.c, ltablib.c)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
小结:关于LUA源代码分析学习教程的内容介绍完了,希望通过本文的学习能对你有所帮助!