探索Lua5.2内部实现:虚拟机指令(6)FUNCTION 时间: 2021-04-05 | 分类: lua | 阅读: 1722 字 ~4分钟 原文链接 name args desc OP_CALL A B C A B C R(A), … ,R(A+C-2) := R(A)(R(A+1), … ,R(A+B-1)) CALL执行一个函数调用。寄存器A中存放函数对象,所有参数按顺序放置在A后面的寄存器中。B-1表示 阅读全文 »
探索Lua5.2内部实现:虚拟机指令(5)Arithmetic 时间: 2021-04-05 | 分类: lua | 阅读: 776 字 ~2分钟 原文链接 name args desc OP_ADD A B C R(A) := RK(B) + RK(C) OP_SUB A B C R(A) := RK(B) - RK(C) OP_MUL A B C R(A) := RK(B) * RK(C) OP_DIV A B C R(A) := RK(B) / RK(C) OP_MOD A B C R(A) := RK(B) % RK(C) OP_POW A B C R(A) := RK(B) ^ RK(C) 上表中的指令都是与 阅读全文 »
探索Lua5.2内部实现:虚拟机指令(4) Table 时间: 2021-04-05 | 分类: lua | 阅读: 1392 字 ~3分钟 原文链接 name args desc OP_NEWTABLE A B C R(A) := {} (size = B,C) NEWTABLE在寄存器A处创建一个table对象。B和C分别用来存储这个table数组部分和hash部分 阅读全文 »
探索Lua5.2内部实现:虚拟机指令(3) Upvalues & Globals 时间: 2021-04-05 | 分类: lua | 阅读: 1247 字 ~3分钟 原文链接 在编译期,如果要访问变量a时,会依照以下的顺序决定变量a的类型: a是当前函数的local变量 a是外层函数的local变量,那么a是当 阅读全文 »
探索Lua5.2内部实现:虚拟机指令(2) MOVE & LOAD 时间: 2021-04-05 | 分类: lua | 阅读: 1521 字 ~4分钟 原文链接 | name | args | desc | | OP_MOVE | A B | R(A) := R(B) | OP_MOVE用来将寄存器B中的值拷贝到寄存器A中。由于Lua是register based vm,大部分的指 阅读全文 »
探索Lua52内部实现-虚拟机指令1概述 时间: 2021-04-05 | 分类: lua | 阅读: 1825 字 ~4分钟 原文链接 Lua一直把虚拟机执行代码的效率作为一个非常重要的设计目标。而采用什么样的指令系统的对于虚拟机的执行效率来说至关重要。 Stack based vs Register based VM 根 阅读全文 »
lua的历史与演进 时间: 2021-04-05 | 分类: lua | 阅读: 35908 字 ~72分钟 lua的优点: 可移植性 容易嵌入 体积小 高效率 这些优点都来自于lua的设计目标:简洁。从Scheme获得了很多灵感,包括匿名函数,合理的语义域概 阅读全文 »
go单例模式 时间: 2021-04-05 | 分类: go | 阅读: 2196 字 ~5分钟 原文链接 Go语言中的单例模式 在过去的几年中,Go语言的发展是惊人的,并且吸引了很多由其他语言(Python、PHP、Ruby)转向Go语言的 阅读全文 »