如何为基于堆栈的虚拟机构建简单的字节码编译器?

问题描述 投票:1回答:1

假设我有一种仅包含以下功能的简单编程语言:

// assignments
var a = 2
// if/else statement and condition expression
if a == 2 {
  // print function and strings
  print "a == 2"
} else {
  // halt program with status code
  halt 1
}

真的很简单,只有一个主例程。

我想为基于堆栈的虚拟机生成字节码。生成此字节码的标准方法是什么?我有一个为该程序构建AST的词法分析器和解析器,现在我想为该程序实现代码生成器(字节码编译器)。

compiler-construction virtual-machine code-generation abstract-syntax-tree bytecode
1个回答
0
投票

如果您感兴趣,我写了一篇有关字节码编译器和解释器here的小文章。它涵盖了您所有的用例,还有更多用例,应该可以被合理地消化。

© www.soinside.com 2019 - 2024. All rights reserved.