我是一名 C 语言初学者(稍微多一点)。我对虚拟机领域非常感兴趣——JVM、Google V8、Erlang VM、PyPy 等。
我的问题是:
小智 5
这个话题本身并不容易。
首先,您需要学习一些有关解析的知识。因为你必须学习如何解析和运行语言。在大多数情况下,它会很简单,例如 C# 的 MIL。
首先要阅读的是 SCIP 《计算机程序的结构和解释,第二版》 这本书提供了构建语言解释器时所需的主题知识。这是最基本的,你必须开始。
接下来是硬核:
1)龙书:《编译器:原理、技术和工具(第二版)》Aho、Seti、Ullman
2)《编译器设计:虚拟机》Reinhard Wilhelm、Helmut Seidl
3)《反编译Java》戈弗雷·诺兰
就我个人而言,我从来没有时间阅读第三本。根据我自己的经验,我知道你必须牺牲大量时间才能制作出哪怕是半像样的东西。
祝你好运