论文部分内容阅读
现代动态语言运行于专门的虚拟机软件上,虚拟机用来管理内存,实现高级特性。每种语言需要针对不同平台提供其虚拟机实现。这些虚拟机由于效率原因通常由低层级的语言来编写。这些不易理解的程序代码维护困难。 本文详细论述了使用PyPy的工具链,如何设计与实现一台名为Lupy的Lua语言虚拟机。PyPy工具链使用RPython语言来编写虚拟机程序,RPython是Python的一个严格子集,提供了静态的类型系统及优秀的性能,PyPy提供一组工具链可以将由RPython编写的虚拟机翻译到多种后端平台上(如JVM,.NET/CLR等)。这种新型的实现方法降低了开发虚拟机的复杂性,提高了可移植性及扩展能力。 本文首先分析了PyPy工具链的工作原理与使用方法。对使用RPython语言编写虚拟机软件进行了系统的讨论。然后针对 Lua语言的特性进行了详细的分析论述,得出了这些特性的详细设计。接下来本文从指令系统,执行机制等方面对Lupy虚拟机系统的实现做了全面的论述。在文章的最后章节,对系统的编译运行进行了具体介绍。 经过PyPy工具链翻译后的Lupy虚拟机原生程序被验证能够良好的工作。这一系统的成功开发,为未来围绕该系统的进一步研究积累了宝贵的经验,并建立了深入开发的基础。