我看着Kotlin Github page时,发现Kotlin语言本身主要是用Kotlin编写的: 我只是想知道,一种语言怎么可能大部分是用自己的语言写的?在甚至使用正在创建的语言之前,是否不需要编写编译器(使用其他语言)?
答案 0 :(得分:9)
用源语言编写编译器的过程称为bootstrapping。
实际上,它最早涉及使用另一种(通常是较低级的)编程语言编写编译器,从而支持为编译器的源语言设计的功能的合理子集。
然后,使用第一步中实现的功能子集,可以用编译语言重写编译器的代码。它为您提供了以相同语言编写的部分语言的编译器。
然后,可以添加新功能(首先不要在代码中使用它们),并且每次都构建更强大的编译器,如此反复。
Kotlin最初使用Java编程语言,然后将大多数Kotlin编译器的源代码重写为Kotlin。现在,添加到Kotlin编译器代码库中的大多数新代码都是用Kotlin编写的。