2

我是 C 的初学者(多一点)程序员。我对虚拟机领域非常感兴趣——JVM、Google V8、Erlang VM、PyPy 等。

我的问题是:

  • 为了能够构建虚拟机,我需要了解/学习哪些东西(语言、概念、算法、数学等)?
  • 任何有帮助的书籍或其他资源
4

1 回答 1

4

这个话题本身并不容易。

首先,您需要了解一些有关解析的知识。因为您将必须学习如何解析和运行语言。在大多数情况下,它会像 C# 的 MIL 一样简单。

首先要阅读的是 SCIP“计算机程序的结构和解释,第二版”这本书提供了有关构建语言解释器时所需主题的知识。这是你必须开始的基础。

接下来是硬核:

1) Dragon Book:“编译器:原理、技术和工具(第 2 版)”Aho、Seti、Ullman

2) “编译器设计:虚拟机” Reinhard Wilhelm、Helmut Seidl

3)《反编译Java》Godfrey Nolan

就个人而言,我从来没有时间阅读第三个。根据我自己的经验,我知道你必须牺牲很多时间才能制作出一些半体面的东西。

祝你好运

于 2012-04-14T19:05:41.050 回答