【问题标题】:If every language is written in some other language then which language lies at the bottom? [closed]如果每种语言都是用其他语言编写的,那么哪种语言位于底部? [关闭]
【发布时间】:2018-04-26 17:42:34
【问题描述】:

我一直听说每种语言的编译器都是用其他语言设计的。例如,PHP 的解释器是用 C 编写的。C++ 是用 C 编写的。JDK 是用 C/C++ 编写的。那么,如果我没记错的话,一定有一种共同语言,这种语言在所有人中都是共同的。如果每个编译器的底部都存在一种通用语言,那么该语言是什么?

【问题讨论】:

标签: compiler-construction computer-science


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    许多语言确实是用其他语言实现或编写的。然而,语言成熟的一个标志是它可以自己编写。这称为引导。更多内容见https://en.wikipedia.org/wiki/Bootstrapping_(compilers)

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

    【讨论】:

      最近更新 更多