我正在网站 http://coffeescript.org/ 上研究 CoffeeScript ,并且它有文本
The CoffeeScript compiler is itself written in CoffeeScript
编译器如何编译自己,或者这个语句是什么意思?
最佳答案
编译器的第一版不能由特定于它的编程语言机器生成;你的困惑是可以理解的。第一个编译器可以构建具有更多语言功能的更高版本的编译器(用新语言的第一个版本重写源代码)。然后该版本可以编译下一个编译器,依此类推。这是一个例子:
- 第一个 CoffeeScript 编译器是用 Ruby 编写的,生成了 CoffeeScript 的第 1 版
- CS编译器的源代码是用CoffeeScript 1重写的
- 原始 CS 编译器将新代码(用 CS 1 编写)编译为编译器版本 2
- 对编译器源代码进行了更改以添加新的语言功能
- 第二个CS编译器(第一个用CS编写的编译器)将修改后的新源代码编译为编译器版本3
- 每次迭代重复步骤 4 和 5
注意:我不确定 CoffeeScript 版本的具体编号方式,这只是一个示例。
这个过程通常被称为bootstrapping 。引导编译器的另一个示例是 rustc,它是 Rust language 的编译器。 .
关于compilation - 编译器如何编译自己?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38005656/