gpt4 book ai didi

language-design - 当有人编写一种新的编程语言时,他们用什么来编写它?

转载 作者:行者123 更新时间:2023-12-03 04:20:21 25 4
gpt4 key购买 nike

我正在涉足 PHP 并开始浏览 SO,并且感到有必要问一个我多年来一直想知道的问题:

当您编写一种全新的编程语言时,您会用什么来编写它?

这对我来说是一个令人困惑的先有鸡还是先有蛋的问题。你做什么工作?对自己说今天我要发明一门新语言!然后就开始吧。记事本?是否所有编译器都建立在以前存在的语言之上,以至于有人会费心将所有设计的编程语言绘制到一棵巨大的分支树上,最终 Root 于......我不知道,一些古老的东西?

最佳答案

这不是一个愚蠢的问题。这是一个很好的问题。

正如已经回答的那样,简短的答案是“另一种语言。”

这会带来一些有趣的问题吗?如果它是为之编写的第一种语言怎么办?您的特定硬件?对于使用嵌入式设备的人来说,这是一个非常现实的问题。正如已经回答的“另一台计算机上的语言”。事实上,一些嵌入式设备永远不会获得编译器,它们的程序将始终在不同的计算机上编译。

但你可以把它推得更远。有史以来编写的第一个程序怎么样?

第一个“高级语言”编译器是用所谓的“汇编语言”编写的。汇编语言是一种语言,其中该语言中的每条指令对应于 CPU 的一条指令。它的语言水平非常低,而且极其冗长,而且编写起来非常费力。

但即使编写汇编语言也需要一个称为汇编器的程序来将汇编语言转换为“机器语言”。我们再往前追溯。第一个汇编程序是用“机器代码”编写的。完全由二进制数组成的程序,与计算机本身的原始语言直接一一对应。

但是事情还没有结束。即使文件中只有原始数字,仍然需要翻译。您仍然需要将文件中的这些原始数字输入计算机。

不管你信不信,早期的计算机前面有一排开关。你翻转开关,直到它们代表一个二进制数字,然后你轻按另一个开关,将那个数字加载到计算机内存中。然后你继续轻弹开关,直到加载了一个可以从磁盘文件或打洞卡读取程序的最小计算机程序。你按下另一个开关,程序就开始运行。当我在 80 年代上大学时,我看到了具有这种能力的计算机,但从未被赋予用交换机加载程序的工作。

甚至在此之前,计算机程序必须与 plug boards 进行硬连接。 !

关于language-design - 当有人编写一种新的编程语言时,他们用什么来编写它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1629513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com