我一直在四处寻找,我发现了一些关于用来创建ALGOL 58编译器的信息。编译器的创建是否类似于FORTRAN,因为它们使用物理卡来创建它?
发布于 2016-08-04 03:00:22
当然,他们使用的是实体卡片,因为这在当时是最实用的。要么你打卡(我自己也这么做了),要么你设置开关(效率更低……)纸带也被使用过,但穿孔卡片的乐趣在于,你可以提前打很多卡片,以防你忘了一张卡片,而穿孔机也被占用了。但这与它是用什么语言写的没有太大关系。我几乎可以肯定那是汇编。
发布于 2018-08-10 23:11:47
我不太清楚这个问题的来龙去脉。不同的制造商提供不同的Algol方言。
我使用Algol 60的经验是第一次使用英语电子KDF9,它有两个不同但兼容的Algol编译器。首先是用于程序开发的Whetstone编译器/控制器系统,该系统具有很好的诊断能力,但运行速度较慢。其次是英文的电子编译器,它的编译速度要慢得多,但生成的运行时代码却很快。我相信这两个编译器都是用机器代码编写的。
1970年,我加入了Burroughs Machines Ltd,并与B6500及其继任者一起工作。它的Algol编译器是用Algol编写的,是用Algol自己编译的!这是我们最接近机器代码的东西!支持软件的大部分组成部分都是用Algol编写的。例如,所有其他的语言编译器!(Basic、PL/I、Cobol、Fortran)
如果你反对这里有一个鸡和蛋的问题,你是非常正确的。
在B6500的硬件运行之前,有一个B6500模拟器在B5500上运行。因此,可以用B5500 Algol编写B6500的Algol编译器,并在B6500仿真器中运行生成的代码。从B5500 Algol语言到B6500版本的变化并不是很大,尽管机器代码有很大的不同。因此,将编译器的源代码从B5500更改为B6500并不是一项大的工作。
如果您坚持要回答有关B5500 Algol编译器是如何产生的问题,恐怕我没有答案!那是在我的时代之前。
发布于 2019-05-29 07:56:20
“Algol 58编译器”的说法表明只有一个,但事实并非如此:there were quite a few,与已发表的IAL报告的保真度不同。
用于Don Knuth为Burroughs205编写的编译器we can look at the listings。
https://stackoverflow.com/questions/38286821
复制相似问题