他们用什么语言构建其他语言?

2022-09-01 18:17:42

什么语言用于构建c ++和java等低级语言?

你怎么能在没有语言的情况下构建第一种语言?


答案 1

在编译器的上下文中,此操作通常称为引导。特别是,请参阅“先有鸡还是先有蛋的问题”部分,直接回答您的问题。

第一个编译器是用汇编语言手写的。如果你的下一个问题是“第一个汇编程序是如何编写的?”那么答案将是第一个汇编程序是用二进制机器代码手写的,可能带有前面板切换开关。这无疑是对实际发生的事情的简化,但概念是相同的。

Ken Thompson还有一篇题为《信任信任的反思》的优秀文章,讲述了使用编译器为一种语言构建编译器的风险。


答案 2

你不构建一种语言,但你构建一个编译器解释器...为此,您可以选择任何语言,甚至是要编译的语言...

第一个自托管编译器 - 能够用高级语言编译自己的源代码 - 是为Lisp创建的...自 20 世纪 70 年代以来,用编译器编译的语言实现编译器已成为一种常见的做法,尽管 Pascal 和 C 都是实现语言的流行选择。http://en.wikipedia.org/wiki/Compiler