如果每种语言都用其他语言编写,那么哪种语言位于底层?

时间:2018-04-26 17:42:34

标签: compiler-construction computer-science

我一直听说每种语言的编译器都是用其他语言设计的。例如,PHP的解释器是用C语言编写的.C ++是用C语言编写的.JDK是用C / C ++编写的。如果我没有错,那么必须有一种共同的语言,这种语言在所有语言中都很常见。如果在每个编译器的底部都存在一种共同语言而不是该语言?

2 个答案:

答案 0 :(得分:4)

C最初是用汇编语言和/或BCPL或其他早期语言编写的。第一个汇编程序是用机器语言编写的 - 基本上直接编写数字代码用于指令。通过开关和其他原始输入设备将数字代码输入到第一台计算机中。

如今,新计算机的软件是使用现有计算机上运行的工具编写的。编译器通常设计有前端(读取和解释源代码的部分,产生对编译器有用的中间语言)和后端(将中间语言转换为汇编代码和/或目标代码的部分)。通过编写新的后端,可以为新机器编译现有编译器的源代码。

答案 1 :(得分:1)

许多语言确实是用其他语言实现或编写的。然而,语言成熟的一个标志是它可以自己编写。这称为bootstrapping。有关详情,请参阅https://en.wikipedia.org/wiki/Bootstrapping_(compilers)

Java被认为是一种引导语言。要从它的源代码构建Java,您需要安装JDK。它确实依赖主机操作系统中的本机组件来完成一些工作,这就是为什么每个平台都有它的JDK构建。