23得票4回答
VM 设计:更多操作码还是更少?哪个更好?

不要惊讶。这是很多文本,但是如果没有提供一些详细信息,我就无法真正展示这是关于什么的(并且可能会得到很多与我的问题无关的答案)。 这绝对不是一个作业(就像某人在他的评论中荒谬地声称的那样)。 先决条件 由于除非设置至少一些先决条件,否则可能根本无法回答此问题,因此这里列出了先决条件: ...

7得票3回答
除了直接攻击代码,学习虚拟机实现的最佳途径是什么?

我希望了解有关虚拟机实现和优化的更多信息。目前,我正在为JRuby做出(小部分)贡献,并且还在玩/编写自己的类似Lisp的语言实现,该实现在VM中运行。 然而,我想获得有关使用VM和设计VM的更多信息。除了阅读/使用现有代码之外,是否有其他好的资源提供这种类型的信息?我并不反对这样做,我只是...

80得票5回答
Java常量池的目的是什么?

我正在深入研究Java虚拟机规范。我一直在阅读在线的JVM内部书籍,但有一个令我困惑的抽象概念:常量池。以下是书中的摘录: 对于它加载的每种类型,Java虚拟机必须存储一个常量池。Constant Pool是该类型使用的常量的有序集合,包括文字(字符串、整数和浮点数常量)和对类型、字段...

81得票8回答
寄存器与栈的区别

相较于使用基于栈的虚拟机,使用基于寄存器的虚拟机有哪些优缺点? 对我来说,似乎基于寄存器的机器更易编程且更有效率。那么为什么JVM、CLR和Python VM都是基于栈的呢?

9得票4回答
我该如何编译和运行这个1989年写的C程序?

我发现了Arthur Whitney的一篇非常棒的作品 - http://www.jsoftware.com/jwiki/Essays/Incunabulum 它编译时出现了一些警告。 $ gcc-4.7 incuna.c -o incuna.o incuna.c: In functio...

15得票2回答
Python虚拟机架构图/参考资料

有人可以指出一些关于Python虚拟机架构的入门文档的网站或书籍吗? 我对C版本感兴趣,但如果有易于理解的其他实现的参考资料也会很有帮助。 我正在尝试寻找比纯源代码更高级的资源(但UML图表或类似内容也不错),并且还需要有关涉及设计决策的信息,包括不同因素之间的权衡(性能、稳定性、简单性)。

13得票1回答
语言引擎 VS. 运行时环境 VS. 进程虚拟机

自从JavaScript变得越来越流行,我发现在同一个语境中,人们会讨论JavaScript引擎、JavaScript虚拟机或JavaScript解释器等,这令我感到很有趣(甚至在同一次演讲中也是如此)。 因此,我尝试进行了一些研究,想知道为什么所有这些流行语可以同时存在(肯定有原因),以及...

26得票9回答
任何汇编语言被认为是有用的最少指令集是什么?

我正在学习总的汇编编程,因此我决定尝试在软件中实现一个“虚拟微处理器”,该处理器具有寄存器、标志和RAM,使用变量和数组实现。但由于我只想模拟任何微处理器的最基本行为,因此我想创建一个只包含必要指令的汇编语言,只有这些指令才是有用的。我的意思是,有一些汇编语言可以进行乘法和交换寄存器值等操作,...

15得票2回答
阐明V8中“hidden classes”概念

我已经阅读了一些关于V8隐藏类的文章。然而,我仍有一些疑问: 假设有两个对象:var a = { } a.x = 5 a.y = 6 var b = { } b.y = 7 b.x = 8 它们最终是否具有相同的隐藏类,还是因为一个使用了0 + x + y,而另一个使用了0 + y + x...

17得票2回答
现代虚拟机如何处理内存分配?

我正在编写一个简单的堆栈机器程序,使用C语言编写,主要是为了学习目的。在使用malloc/free进行内存操作后,我认为阅读一些现代虚拟机中的内存分配特定代码是一个好主意。 我下载了Lua源代码并开始阅读它。过了一会儿,我意识到有很多宏定义涉及其中,并且我找不到真正执行内存分配(即mallo...