可能的重复:
一种语言的编译器如何用该语言编写? https://stackoverflow.com/questions/2998768/how-can-a-languages-compiler-be-written-in-that-language
在“自身”中实现编译器 https://stackoverflow.com/questions/193560/implementing-a-compiler-in-itself
我在看Rubinius http://rubini.us/,一个 Ruby 实现,使用 Ruby 编写的编译器编译为字节码。我无法理解这个问题。如何用该语言本身编写该语言的编译器?看起来它只是文本,没有任何东西可以将其编译成可执行文件,然后可以编译将来用 Ruby 编写的代码。只是输入这句话我就感到困惑。谁能帮忙解释一下吗?
为了简化:您首先用不同的语言为编译器编写一个编译器。然后,编译编译器,瞧!
所以,你需要某种已经有编译器的语言 - 但由于有很多这样的语言,你可以编写 Ruby 编译器(!),例如然后,它将编译 Ruby 编译器,然后编译器可以编译 Ruby 程序,甚至是其自身的更高版本。
当然,最初的编译器是用机器代码编写的,编译编译器用于汇编,汇编编译器又编译编译器,例如C 或 Fortran,它编译了几乎所有内容的编译器。迭代开发在行动。 http://en.wikipedia.org/wiki/History_of_compiler_writing
该过程称为引导 http://en.wikipedia.org/wiki/Bootstrapping_%28compilers%29- 可能以明希豪森男爵的故事命名,在这个故事中,他靠自己的力量将自己从沼泽中拉了出来:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)