36得票4回答
解释器 vs 编译器 vs 虚拟机

我有一个关于解释器、编译器和虚拟机(VM)的问题。 现在我知道解释器和编译器之间的区别,但是虚拟机与前两者有什么不同呢?使用虚拟机相比于解释器和编译器有哪些优缺点呢? 非常感谢。

7得票3回答
为C语言子集实现基于栈的虚拟机

大家好,我目前正在实现一种简单的编程语言以进行学习体验,但我需要一些建议。目前我正在设计我的解释器并遇到了问题。 我的语言是C语言的子集,我在堆栈解释器实现方面遇到了问题。在这种语言中,以下内容将会被编译: somefunc () { 1 + 2; } main () { ...

7得票1回答
将抽象语法树编译成汇编代码

我有一棵抽象语法树,需要将其转换为虚拟机的汇编代码。我不知道最好的方法是什么,所以开始使用一系列字符串模板。以下是一个伪代码示例,假设需要编译一个具有一个条件的简单 if 语句: std::string compile_if(Node* n) { std::string str = ...

10得票6回答
PHP如何知道使用的变量类型(还是它并不知道)?

我在许多编程语言中没有做过太多的编程,但我知道在C(++)中,您必须声明变量类型(int、char等)。 当然,在PHP中,您不必这样做。您可以从$str =“something”; 开始,然后稍后 $str =array(“something”=>“smells”); ,并且它能正常工作...

12得票3回答
对8位系统上lisp类语言的虚拟机感兴趣

我正在寻找适用于8位微处理器且支持动态语言的虚拟机软件。我希望使用虚拟机解决方案,因为从代码密度、可移植性以及可以留更多空间给更大的程序等方面,我看到了优势。 我的目标是在类似6502微处理器上运行完整的LOGO解释器,遵循“LOGO for the Apple II”语法。 我已经看到过...

10得票4回答
如何查找JVM对我的代码进行了哪些优化?

JVM(尤其是HotSpot VM)以运行时应用大量优化而闻名。 有没有办法查看某个代码片段,看看JVM实际上对其做了什么?

27得票8回答
什么是虚拟机,为什么动态语言需要它?

所以,例如Python和Java有一个虚拟机,C和Haskell没有。(如果我错了,请纠正我) 考虑一下这条线两侧的语言,我找不到原因。Java在很多方面都是静态的,而Haskell提供了许多动态特性。

7得票2回答
JVM如何判断一个类(例如内部或嵌套类)是否“属于”另一个类?

我想更好地了解类文件和内部/嵌套类,以下是我的疑问: InnerClasses属性是用于引用´包含´类中的内部/嵌套类还是在内部/嵌套类中用于引用‘容器’类? 类文件中的InnerClasses属性是否足够? 例如,内部/嵌套类是否必须遵循$名称编码?这只是一种约定吗? 是否有一种方法可以...

8得票3回答
如何提高巨型多态调用点的效率?有哪些不同的技术可以使用?

前言 本文旨在提高即时编译器中消息发送的效率。尽管参考了Smalltalk,但这个问题适用于大多数动态JIT编译的语言。 问题 给定一个消息发送站点,它可以被分类为单态、多态或巨态。如果消息发送的接收者始终是相同类型,则为单态发送,例如 10 timesRepeat: [Object ...

11得票1回答
在 asm.js 规范中所提到的 C/C++ 虚拟机是什么?

在asm.js规范(位于http://asmjs.org/spec/latest/)的介绍部分中,它说: "asm.js语言提供了类似于C/C++虚拟机的抽象" ..但是我在谷歌上找不到有关'C/C++虚拟机'的任何信息。有人能否启发我,或者指点我一本书/网站,描述'C/C++虚拟机'吗?