代码之家  ›  专栏  ›  技术社区  ›  anon

LuaVM的简明描述?

lua
  •  8
  • anon  · 技术社区  · 15 年前

    我略读过Lua中的编程,我看过Lua参考。

    但是,他们都告诉我 此函数执行此操作 ,但不是 怎样 .

    在阅读sicp时,我有这样的感觉:“啊,这是计算模型的基础方案”;我试图对lua有同样的理解——也就是说,它是vm的简明描述,是“如何”而不是“什么”。

    有人知道描述这个的好文件(除了C源文件)吗?

    7 回复  |  直到 12 年前
        1
  •  15
  •   Mark Rushakoff    15 年前

    你可能想读 No-Frills Intro to Lua 5(.1) VM Instructions (选择一个链接,单击“文档”选项卡,选择“英语”->转到)。

    我记不清了 哪里 我看过,但我记得我读到Lua的作者特别不鼓励终端用户在虚拟机上过多地了解细节;我认为他们希望它尽可能多地涉及实现细节。

        2
  •  7
  •   Alexander Gladysh    15 年前

    除了已经提到的 A No-Frills Introduction to Lua 5.1 VM Instructions ,您可能对 this excellent post 由迈克·鲍尔介绍如何阅读Lua源代码。

    也看到 related Lua-Users Wiki page .

        3
  •  5
  •   lhf    15 年前

    http://www.lua.org/source/5.1/lopcodes.h.html . 列表从opu move开始。

        4
  •  3
  •   Matthew Monaghan    15 年前

    我找到了 The Implementation of Lua 5.1 对于理解Lua实际上在做什么非常有用。

    它解释了散列技术、垃圾收集和其他一些零碎的东西。

        5
  •  3
  •   Norman Ramsey    15 年前

    Lua基础的计算模型与计算模型基础方案基本相同,只是中心数据结构不是cons单元;它是可变哈希表。(至少在使用元表进行元编程之前)否则,所有熟悉的东西都存在:具有可变局部变量的嵌套的第一类函数(让绑定变量在方案中),等等。

    我不清楚你会从对虚拟机的研究中得到什么。我曾经对虚拟机进行过一些黑客攻击,它和其他面向注册的虚拟机非常相似,尽管可能更干净一些。只有少数说明是特定于Lua的。

    如果您对元表感兴趣,那么语义将在 Section 2.8 of the reference manual for Lua 5.1 . 如果你在 src/lvm.c 您将看到几乎完全用C实现的逻辑(例如,内部 Arith 函数)。虚拟机指令是专门针对常见情况的,但都非常简单;不涉及任何聪明的东西。

    多年来,我一直想要一个更正式的Lua计算模型规范,但我的品味更倾向于正式的语义……

        6
  •  0
  •   fastcall    12 年前

    另一篇伟大的论文是 The Implmentation of Lua 5.0 描述了虚拟机中各种关键系统的设计和动机。我发现阅读它是解析和理解我在C代码中看到的内容的一个很好的方法。

        7
  •  -3
  •   Developer    15 年前

    我很惊讶你提到虚拟机的C源代码,因为它受到lua.org和巴西的tecgraf/puc rio的保护,特别是在许多国家,这种语言用于实际的商业和商业应用。关于Lua的实现的文章包含了关于虚拟机的详细信息,其中最详细的部分是允许包含的,但是虚拟机的结构是专有的。值得注意的是,5.0和5'版本是由IBM在欧洲委托用于客户大型机的,它们基于寄存器的版本有一个接受IBM定义的中间指令格式的VM。