LUA源码分析一:总括

1.lua语言短小,而且是我目前开发用到的语言之一,我会把它作为长期阅读的一个开源代码之一

2.读完并不代表很牛了,只是把自己的一些弱点给弥补得不是那么明显

3.格式上会大概如下:

 1)引用一段代码时,会把大意通过注释标识出来,如果遇到具体的函数调用会通过1.x表示在后面标记段

 2)有时候一遍下来,会有选择性的通读,很可能以后会回过头再次阅读,会加个时间戳表示更新

 3)根据2)的读法是,不从细节的算法出推导逻辑,而是先认识这个东西是干吗的,再去推导其中的细节。否则会迷失在无尽的细节中

 4)前几篇中,我会把每个函数背后所对应的c文件名列举出来,通过观察这些文件的层次,学习lua优秀的模块划分,和对lua全局上的认识


4.阅读源码上,我的一些体会,大概分这几个步骤

 1)一个好的库会很清晰分这么几个层次,外部API,内部API,自定义的数据格式和解析,核心的数据结构,核心的几个模块,以及工作流程

 2)因此阅读上可以这样,通过跟调一些外部API的实现,来了解这个库的一个工作方式

 3)熟悉这个库的 数据结构,和常用的数据解析宏或者函数

 4)可以尝试分析一些内部API的实现(多为实现外部API的函数), 3),4)可以多次迭代

 5)这个时候是跟调这个库的工作流程。

 6)以库工作流程为例,如果是lvm的虚拟机,那就要先了解它的一些状态文件,栈的操作方式,

 7)如果6)用到一些核心的数据结构,则回头再看这些数据结构,然后再从5)开始迭代

 总结一下,即先了解一个东西暴露出来的api,从这些上层api上去大致揣摩库的工作方式,然后熟悉"通行证"(数据结构,常用的宏),然后继续下一层的探索,有时候需要两个层次的结合来看,不但迭代的这么个过程。其中很重要的一个是,怎么去领会一个库的思考方式和组织关系,有了这个大背景的存在,就不会迷失在看似繁多的代码文件里。


5.环境上的准备

lua版本是(根据lua.h的宏)

#define LUA_VERSION "Lua 5.1"

#define LUA_RELEASE "Lua 5.1.4"

编译器是vs2008, win7版本

把源码都加进vs工程,删掉一些提示重复main的文件,保证代码上的可跟调性

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值