3

我正在寻找用 C++ 编写的简单解释器代码。理想情况下,它不会比具有变量赋值的表达式求值器更复杂(用于内存管理代码)。

我的理由是,我正在研究现代编译器设计,目标是能够为 V8 javascript 引擎等解释性语言引擎做出贡献。然而,到目前为止,这本书的所有代码都是用 C 编写的,我希望看到在这种情况下为 C++ 实现的设计实践,尤其是内存管理模型,以及一般的词法分析器/解析器/等的结构。

我知道没有多少代码是这样基本的,而且 C++ 不是编写解释器的传统语言(尤其是在开源世界),但我希望有人在这方面工作过并且至少可以将我指向他们的个人 Git 存储库。

我一直在寻找这种代码大约一个星期,但我能找到的唯一代码太复杂了,在这个阶段我无法理解。

4

2 回答 2

2

C++ 编程语言

我正在寻找用 C++ 编写的简单解释器代码。理想情况下,它不会比具有变量赋值的表达式求值器更复杂(用于内存管理代码)。

你读过C++ 编程语言吗?

在第 6 章,它有一个简单递归下降解析器的好例子。是的,它是带有变量赋值的表达式求值器。

于 2013-04-05T23:48:02.820 回答
1

LLVM Kaleidoscope教程包含您需要的许多基础知识:地道的 C++ 语言词法分析和解析、中间表示处理等。

或者,如果您正在寻求真正的核心 C++ 体验,您可能想看看Boost::Spirit,这里有很多示例,从简单的表达式求值器到复杂的语法。

于 2013-04-10T08:32:12.547 回答