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