1

可能重复:
如何用 C 编写编译器?

我将如何开始在 C 中从头开始编写编译器(没有FlexBisonLexYacc)?我有一种语言,我为其编写了解释器,它有点像Forth。有点。它使用堆栈接收符号并一次解释一个符号。

我将如何制作编译器?

这不是一个特别垃圾的位。只是为了向人们展示语法和简单性。

http://github.com/tekknolagi/StackBased

4

1 回答 1

5

简单的!

  1. 您将输入标记化。
  2. 您构建它的适当表示,通常这是一个抽象语法树,但这不是必需的。
  3. 您执行您可能需要的任何树转换(可选)。
  4. 您可以通过遍历树来生成代码。
  5. 您将任何不同的部分链接在一起(可选)

Flex 和 Bison 在第 1 阶段和第 2 阶段提供帮助,其他一切由您决定。如果您仍然卡住,我建议您阅读“Programming Language Pragmatics”或 The Dragon Book。

于 2011-08-15T21:17:45.490 回答