随想录(lua源码学习)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】


    lua本身作为非常优秀的语言,在游戏和项目开发中占有举足轻重的角色。因此,很多朋友都希望自己可以看看lua是怎么设计的。网上关于lua的教程很多,不过我还是建议大家可以找一找低阶版本的lua版本进行阅读。只要掌握一点lex、bison和vm的知识,lua本身并不复杂。


1、选择哪个版本?

    我个人建议选择lua-1.1.tar.gz版本,这个版本中少有的包含了词法分析文件lua.lex和语法分析文件lua.stx。


2、怎么编译?

    直接./domake就可以了,少量的编译错误大家可以自己解决。


3、主要代码怎么分布?

    项目主要包含了bin/clients/doc/include/lib/src/test等目录。其中bin、lib用来保存生成的文件。doc为文档目录。include为头文件目录。clients和src为主要的代码目录,clients中包含了lib文件、lua入口文件,而src包含了主要的编译文件、虚拟机执行文件等等。test目录包含了很多lua代码,可以用来进行测试。


4、lua.lex & lua.stx做什么用?

    这两个文件主要用来生成对应的c文件,做字符解析和语法解析使用。其中lua.lex生成的c文件为lex.c,lua.stx生成的文件为y.tab.c。


5、虚拟机执行在那个文件?

    虚拟机执行主要在lua_execute这个函数,在opcode.c文件中。


6、lua执行的基本流程是什么?

    整个lua解析的流程不复杂,从main->lua_dofile->lua_parse->lua_execute,基本流程就是这样的。


7、如果需要从c调用lua怎么办?

    lua-1.1.tar.gz其实提供了lua_call这个函数来实现这一目标,但是好像没有地方用到这个函数。


8、想学习lua调用c怎么办?

    直接学习clients/lib/mathlib.c等函数,活学活用。


9、其他要注意什么?

    利用lua.lex和lua.stx掌握lua的基本规则,配合lua_execute学习,都可以学得会。大家不用有任何心理负担。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式-老费

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值