如何开始用C语言构建编程语言?

如何开始用C语言构建编程语言?,c,compiler-construction,programming-languages,C,Compiler Construction,Programming Languages,我真的很想体验一下使用C构建编译器、lexer等的经验,但是我还没有找到一个关于创建编译器、lexer的资源。我读过一本关于使用Ruby创建您自己的语言的书,但它只是讨论了C是如何成为最佳选择,并没有告诉您从哪里开始 他们有没有很好的资源来构建一种使用C语言的语言?我不在乎它有多长,我只想知道如何构建它。编译器/解释器的一个优点是,它们用什么语言编写并不重要。在最后阶段,它们将只是某人机器上的可执行文件 尽管如此,在编写编译器(我目前正在做的事情)时,我使用了几本非常有用的书: 尼古拉斯·沃思

我真的很想体验一下使用C构建编译器、lexer等的经验,但是我还没有找到一个关于创建编译器、lexer的资源。我读过一本关于使用Ruby创建您自己的语言的书,但它只是讨论了C是如何成为最佳选择,并没有告诉您从哪里开始


他们有没有很好的资源来构建一种使用C语言的语言?我不在乎它有多长,我只想知道如何构建它。

编译器/解释器的一个优点是,它们用什么语言编写并不重要。在最后阶段,它们将只是某人机器上的可执行文件

尽管如此,在编写编译器(我目前正在做的事情)时,我使用了几本非常有用的书:

  • 尼古拉斯·沃思
  • 杰弗里·厄尔曼、阿尔弗雷德·阿霍、拉维·塞蒂
  • 沃思的书将引导您完成为一种叫做Oberon-0的语言创建编译器的所有阶段。它还有他完成的编译器的全部源代码,因此您可以在自己的机器上使用它。编译器本身是用Pascal编写的(Wirth创建的其他东西)


    龙书中有很好的C语言信息和示例!这可能是您正在寻找的,但正如我上面所说的,您编写编译器的语言并不是那么重要。

    。任何数量的编译器入门书籍都会引导您完成这一过程。它可能不是C语言,但所有的概念都可以翻译成任何语言。C是这些工具的本机语言,它们将完成解析部分。在那之后(最晚),你需要一本已经提到的书。我相信我以前听说过龙书,但我早就忘记了。我一定会在狩猎书籍上查到的。:-)@Chris如果你使用lex和yacc这样的工具,你真的会错过编写完整编译器的经验。我建议第一次就从头开始做。