好的,所以我知道,通常,一种语言是用另一种语言编写的(比如Python是用C语言编写的)。
但是,有没有一种语言可以自己编写?显然,他们必须使用该语言的先前版本的编译器/解释器,这意味着,至少在最初阶段,它将用其他东西编写。
我意识到使用现有语言为新语言开发编译器会非常恼人和毫无意义,只能立即放弃它并用新语言编写新的编译器(然后使用原始编译器编译) ),但我真的没有看到为什么不能这样做的原因(尽管如此,我确实知道为什么不能这样做)。
尽管如此,它曾经发生过吗?
答案 0 :(得分:10)
是的,它被称为Bootstrapping。
在计算机科学中,bootstrapping是在目标编程语言中编写编译器(或汇编程序)的过程。应用此技术会导致自托管编译器。 许多编程语言的许多编译器都是自举的,包括BASIC,ALGOL,C,Pascal,PL / I,Factor,Haskell,Modula-2,Oberon,OCaml,Common Lisp,Scheme,Java,Python,Scala等编译器。 / p>