Lua 核心概念

Lua 核心
         Lua核心部分仅包括Lua虚拟机的运转。Lua虚拟机的行为是由一组组opcode控制的。这些opcode定义在lopcodes.h及lopcodes.c中。而虚拟机对opcode的解析和运作在lvm.c中,其API以luaV为前缀。
         Lua虚拟机的外在数据形式是一个Lua_State结构体,取名State大概意为Lua虚拟机的当前状态。全局State引用了整个虚拟机的所有数据。这个全局State的相关代码放在lstate.c中,API使用luaE为前缀。
         函数的运行流程:函数调用及返回则放在ldo.c中,相关API以luaD(D取Do之意)为前缀。
         Lua中最复杂和重要的三种数据类型function,table,string的实现分属在lfunc.c, ltable.c, lstring.c中。这三组内部API分别以luaF, luaH, luaS为前缀。不同的数据类型被统一定义为Lua Object, 相关的操作在lobject.c中,API以luaO 为前缀。
         Lua从第5版后增加了元表,元表的处理在ltm.c中,API以luaT为前缀。
         另外,核心系统还用到两个基础设施:内存管理lmem.c, API以luaM为前缀;带缓冲的流处理lzio.c, API以luaZ为前缀。
         最后是核心系统里最为复杂的部分,垃圾回收部分,在lgc.c中实现,API以luaC为前缀。
          Lua设计的初衷之一就为了最好的和宿主系统相结合。它是一门嵌入式语言,所以必须提供和宿主系统交互的API。这些API以C函数的形式提供,大多数实现在lapi.c中。API直接以lua为前缀,可供C编写的程序库直接调用。以上这些就构成了让lua运转起来的最小代码集合。后面详细剖析其中细节。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值