这是我的第一个问题。
这样想吧。Python是用C编写的,C编译器是用旧的C编译器编写的,C编译器是用更旧的C编译器编写的,B编译器是用BCPL编写的。我不知道BCPL是用什么语言写的,但是好像一定有一种原始语言吗?
换句话说,每种编程语言都是用旧的编程语言编写的。那么,最先出现的是什么,编码的是什么?
发布于 2020-10-15 01:07:57
编程语言是用什么写的?
编程语言编译器和运行时是用编程语言编写的--不一定是较旧的语言,也不一定与它们作为输入的语言不同。一些运行时代码会掉进程序集中,以访问某些硬件指令或代码序列,而这些指令或代码序列并不容易通过编译器获得。
一旦自举自举,编程语言就可以编写自寄主自寄主,因此它们通常是用自己编译的语言编写的。例如,C编译器是用C或C++编写的,C#'s Roselyn编译器是用C#编写的。
当Roselyn编译器添加了一个新的语言特性时,他们将不会在编译器的源代码中使用它,直到它被调试和工作(例如,发布). ,这类似于引导练习(仅限于一个新特性,而不是整个语言)。
但是要明确的是,编程语言有可能(而且经常被实现)用其输入语言的最新版本编写。
那么,最先出现的是什么,编码的是什么?
首先是机器代码,第一批汇编程序本身非常简单(早期的汇编语言非常容易解析和生成机器代码),它们是用机器代码编写的,直到引导和自托管。
发布于 2020-10-15 00:32:30
每台机器都有自己执行的指令集。
该指令集是第一语言。
第一个高级语言是程序集,字面上允许程序员编写像mov ax bx这样的长表达式,而不是相应的二进制单词。
第一个编译器是用机器语言编写的,尽管更准确地说,它应该被称为汇编程序,但现在的标准是这样的。它会使用汇编语言并将其翻译成二进制编码。
这种情况在许多不同的机器上已经发生过多次,直到第一个交叉编译器被开发出来,可以将一个程序重写成另一种机器语言。
即使现在,仍然有一些语言最初是用机器语言实现的。
https://softwareengineering.stackexchange.com/questions/417935
复制相似问题