`

LUA源码分析一:总括

    博客分类:
  • 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的文件,保证代码上的可跟调性

 

分享到:
评论

相关推荐

    Lua源码分析

    Lua源码分析Lua源码分析Lua源码分析Lua源码分析Lua源码分析Lua源码分析Lua源码分析Lua源码分析

    所有版本LUA源码

    所有版本LUA源码 lua-5.3.5 lua-5.3.4 lua-5.3.3 lua-5.3.2 lua-5.3.1 lua-5.3.0 lua-5.2.4 lua-5.2.3 lua-5.2.2 lua-5.2.1 lua-5.2.0 lua-5.1.5 lua-5.1.4 lua-5.1.3 lua-5.1.2 lua-5.1.1 lua-5.1 lua-5.0.3 lua-...

    lua源码分析

    这个是lua的源码分析,lua的源码写的非常好,整个设计的结构非常巧妙,不管是对于学习lua本身还是c语言的数据结构都非常有帮助。

    云风-lua源码欣赏-lua-5.21

    第一章概览由甮由源文件划分 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮 甮

    lua 源码剖析

    里面有风云 大神写的对lua 的源码剖析。还有lua5.2源码。

    《Lua 源码欣赏》

    新添了一章关于虚拟机的,所以重新读了一遍相关源码。发现 Lua 5.2 比上一版修改了不少,几乎每个位置都有修订。 自己读代码和写出来给人看又是不同,真的逐行推敲的话,之前的理解也是经不起琢磨的。为什么要写这...

    lua脚本加密工具:简单异或加密

    做了那么多 Lua 脚本破解,我们来尝试写一个不能被破解的加密。 所谓不能被破解,并不是真正不能被破解,只是在没有密码的情况下很难破解。

    Lua 源码赏析.pdf

    Lua 源码赏析.pdf, 其中有着非常棒的lua源代码资源可供学习。下载文件为该书的百度云连接地址。

    lua源码导读---云风

    云风新作-----lua源码导读。目前网上最好的lua源代码阅读教程。帮助你快速理解lua实现原理。

    云风《Lua源码欣赏》1积分

    云风写的Lua源码欣赏,基于lua5.2版本源代码解析,对于初初学习lua语言的有很不错的帮助

    lua-utf8.zip

    a utf-8 support module for Lua and LuaJIT 源码地址:https://github.com/starwing/luautf8 编译后可用的库: Linux版:lua-utf8.so Windows版:lua-utf8.dll(若是用在openresty中,openresty版本需使用32位版本...

    lua源码及中文文档

    Lua是一个小巧而简单的语言,因为Lua不致力于做C语言已经做得很好的领域,比如:性能、底层操作以及与第三方软件的接口。Lua依赖于C去做完成这些任务。Lua所提供的机制是C不善于的:高级语言、动态结构、简洁、易于...

    Lua CJSON 源码

    Lua CJSON 为 Lua 语言提供高性能的 JSON 解析器和编码器,其性能比纯 Lua 库要高 10 到 20 倍。Lua CJSON 完全支持 UTF-8 ,无需依赖其他非 Lua/LuaJIT 的相关包。

    lua源码欣赏

    lua源码欣赏 lua源代码分析,来之云风!

    redis-lua 源码

    redis-lua 是 Redis 的 Lua 语言的客户端开发包。 示例代码: require 'redis' local redis = Redis.connect('127.0.0.1', 6379) local response = redis:ping() -- true redis:set('usr:nrk', 10) redis:set('usr...

    Lua经典编程书籍: 编程指南.doc 、Lua程序设计_第二版_中文.dpf 、Programming in Lua, 2Nd Edition.pdf

    Lua经典编程书籍, 编程指南.doc ,Lua程序设计_第二版_中文.dpf ,Programming in Lua, 2Nd Edition.pdf。 lua编程书籍,高清版,带目录,非常好的参考书

    Lua源码欣赏中文版

    讲解lua语言的实现源代码,由于lua是基于C语言实现,所以需要有一定C语言基础。 请配合《the implementation of Lua5.0中文版》一起阅读。 http://download.csdn.net/detail/havesnag/5071833

    cjson.lua源码

    用sublime调试lua,lua中需要 require 'cjson',使用cjson.dll报错,可以将该cjson.lua直接放入同一目录下。

    打地鼠lua源码

    打地鼠的lua源码,是我学习脚本的时候用到的,希望对大家有所帮助,希望大家喜欢

Global site tag (gtag.js) - Google Analytics