Compiler construction 编译程序是如何编译的?

Compiler construction 编译程序是如何编译的?,compiler-construction,Compiler Construction,由于编译器基本上是一个将源代码转换为机器代码的程序,这个编译器程序是如何编译的?我在某个地方读到过关于编译程序能够自己编译的文章,但这不是一个普通的程序,它还需要一个单独的程序来编译它。简短的一般性回答,因为你的问题非常广泛:有多种方法可以做到这一点,但这很大程度上取决于你的目标 编译器自行编译。这称为自托管,可以通过增量方式实现,其中每个后续版本都能够解析/编译您添加的其他语言特性和功能。或者 您的语言源代码由另一种语言(例如Python、C/C++等)编译。然后,当您向您的语言添加功能时,您

由于编译器基本上是一个将源代码转换为机器代码的程序,这个编译器程序是如何编译的?我在某个地方读到过关于编译程序能够自己编译的文章,但这不是一个普通的程序,它还需要一个单独的程序来编译它。

简短的一般性回答,因为你的问题非常广泛:有多种方法可以做到这一点,但这很大程度上取决于你的目标

  • 编译器自行编译。这称为自托管,可以通过增量方式实现,其中每个后续版本都能够解析/编译您添加的其他语言特性和功能。或者
  • 您的语言源代码由另一种语言(例如Python、C/C++等)编译。然后,当您向您的语言添加功能时,您支持对源代码进行这些扩展,然后更新用上述其他语言生成的代码。这可能是暂时的(也称为引导),一旦生成的编译器足够健壮,您可以恢复到选项1

  • 检查这个。不过编译器是一个程序。为什么它不能自己编译呢?没有看到对“已经回答”的引用,但是我的和它基本上是一致的。