Lua代码翻译及预编译字节码

       光有核心代码和一个虚拟机还无法让Lua程序运行起来。因为必须从外部输入运行的Lua程序运行起来。Lua的程序的人读形式是一种程序文体,需要经过解析得到内部数据结构(常量和opcode的集合)。这个过程是通过parser:lparser.c()及词法分析llex.c(luaX为前缀的API)
        解析完文体代码,还需要最终生成虚拟机理解的数据,这个步骤在locde.c中实现,其API以luaK为前缀。

        为了满足某些需求,加快代码翻译的流程。还可以采用预编译的过程。把运行是编译的结果,生成为字节码。这个过程及逆过程由ldump.c  和lundump.c实现。其API以luaU为前缀。

        Lua在早期几乎都是被用来嵌入其它系统中使用,所以源代码通常被编译成动态库或者静态库被宿主系统加载链接。但,随着Lua的第三方库越来越丰富。人们开始倾向于把Lua作为一门独门语言来使用。Lua官方版本也提供了一个简单的独立解析器,便是lua.c所实现的这个。并有luac.c实现了一个简单的独立编译器,可以预编译文本的Lua源代码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值