直观地说,似乎语言的编译器Foo本身不能用Foo编写.更具体地说,语言的第一个编译器Foo不能用Foo编写,但可以编写任何后续的编译器Foo.
Foo
但这是真的吗?我对一种语言的阅读非常模糊,这种语言的第一个编译器是用"本身"编写的.这是可能的,如果是这样的话怎么样?
compiler-construction bootstrapping
我编了从源头GCC,但我似乎无法完全理解的效用gcc编制本身3倍。
gcc
这有什么好处?
这个答案说:
使用现有的 C 编译器构建新版本的 GCC 用您刚刚构建的 GCC 重新构建新版本的 GCC (可选)重复步骤 2 以进行验证。
现在我的问题是,一旦第一步完成并构建了编译器,为什么还要浪费时间重建它?
只是为了验证吗?如果是这样,那似乎很浪费。
事情在这里变得更复杂,
这个构建比以前的包更复杂,因为您将更多信息发送到配置脚本中,而 make 目标不是标准的。
我的意思是整个编译器都是用 C 编写的,那么为什么不一次性完成所有事情呢?
三相自举有什么用?
提前致谢。
architecture compiler-construction gcc bootstrapping
可能重复: gcc/g ++是如何引导的?
我想知道gcc是如何编译的,因为我们都知道它是用C语言编写的.
他们是否使用其他编译器来提供gcc?
如果是这样,我可以使用相同的编译来编译我的C程序吗?
c glibc
可能重复: "C或gcc"就像"鸡肉还是鸡蛋"?:(
如果visual c ++调试器是用于调试正在运行的程序的工具,调试器在开发时会调试什么?鸡蛋困境?他们是如何调试Visual C++调试器的?
c++ visual-studio
bootstrapping ×2
compiler-construction ×2
architecture ×1
c ×1
c++ ×1
gcc ×1
glibc ×1
visual-studio ×1