Lua 核心概念

Posted heyuchang666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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运转起来的最小代码集合。后面详细剖析其中细节。

以上是关于Lua 核心概念的主要内容,如果未能解决你的问题,请参考以下文章

Lua 笔记

15分钟掌握Elasticsearch 8大核心概念与基础用法

Spring Security系列之核心概念

WebRTC 源码分析之一:几个核心设计概念

前端技术丨主题周Angular 核心概念与框架演进

Webpack核心概念