我一直在查看 Lua’s standalone interpreter的源代码,到目前为止我还没有能够理解它. 也许我的谷歌搜索技能已经磨损,但我无法找到一个很好的解释,它是如何工作的. Lua的代码似乎针对性能
也许我的谷歌搜索技能已经磨损,但我无法找到一个很好的解释,它是如何工作的. Lua的代码似乎针对性能进行了优化,而不是可读性.
速度感知有两个来源:脚本编译和脚本执行.脚本编译使用递归下降解析器与优先表达式解析器相结合.见http://www.lua.org/source/5.1/lparser.c.html.
脚本执行解释虚拟机的指令.这台机器很快,因为它专门用于Lua的语义,也因为它是一个基于寄存器的虚拟机,比早期版本的Lua中使用的基于堆栈的虚拟机更快.见http://www.lua.org/source/5.1/lopcodes.h.html.