请教老师一个关于语言编译器自举的问题
来源:11-5 垃圾回收算法选讲——基于引用计数的内存回收算法

Osuribaba
2020-12-14
请教一下老师,有些语言的编译器是自举的就比如 go 这种语言,我发现它的编译器也是用 go写的,感觉有点像是鸡生蛋,蛋生鸡的问题。所以我想问下,某些像这种能够自举的语言,是不是还是需要别的语言实现的编译器编译一遍才能自举?
举个例子,比如说,假设现在有门语言叫做“X”,X 语言的编译器最初是用 C 写的,然后 X 语言成熟了之后,用 X 实现了 X 自己的编译器,那我在真正在用 X 编译 X 的代码之前,是不是还是要先用 C 语言把 “X 实现的 X 的编译器” 给编译成机器码,然后才能用这些机器码去跑一个用 X 语言写的程序?
写回答
1回答
-
求老仙
2020-12-23
一般是先用底层语言实现个简版。然后简版跑起来后就用自己的语言丰富生态。主要是自举过程中需要设计的类型 帮助方法,数据结构,。。用户也要用。而且构造语言就像构造属于自己的王国一样,除非遇到自己语言解决不了的问题,谁愿意假手其他语言呢?
00
相似问题