ALGOL 编译器最初是用什么编写的?

What was ALGOL compiler originally programmed in?

我环顾四周,发现关于用于创建 ALGOL 58 编译器的信息很少。编译器的创建是否与 FORTRAN 类似,因为它们使用物理卡来创建它?

当然他们用的是实体卡,因为当时最实用。 要么你打卡(我自己做过)要么你设置开关(效率更低......) 也使用了纸带,但是打孔卡片的乐趣在于你可以打很多孔;提前,以防万一你忘记了一个而打孔机被占用了…… 但这与它是用什么语言编写的没有太大关系。 我几乎可以肯定是组装。

我不确定问题的上下文。不同的制造商提供了不同的 Algol 方言。

我对 Algol 60 的体验首先是使用 English Electric KDF9,它有两个不同但兼容的 Algol 编译器。首先,用于程序开发的 Whetstone compiler/controller 系统具有出色的诊断功能,但 运行 相当慢。其次是 English Electric 编译器,它的编译速度要慢得多,但生成的 运行 时间代码很快。我相信这两个编译器都是用机器代码编写的。

1970 年,我加入了 Burroughs Machines Ltd,并与 B6500 及其后续产品一起工作。它的 Algol 编译器是用 Algol 编写的,用于编译自身!这是我们所拥有的最接近机器代码的东西!支持软件的大部分组成部分都是用 Algol 编写的。例如。所有其他语言编译器! (基本,PL/I,Cobol,堡垒运行)

如果你反对这里存在先有鸡还是先有蛋的问题,那你是对的。

在B6500的硬件运行ning之前,B5500上有一个B6500仿真器运行ning。 B6500 的 Algol 编译器因此可以用 B5500 Algol 编写,生成的代码 运行 在 B6500 仿真器中。从 B5500 Algol 语言到 B6500 版本的变化并不大,尽管机器代码有很大不同。因此,将编译器的源代码从 B5500 更改为 B6500 并不是一件大事。

如果您要坚持回答有关 B5500 Algol 编译器是如何产生的问题,恐怕我没有答案!那是在我的时代之前。

措辞"the Algol 58 compiler"表明只有一个,但事实并非如此; there were quite a few,对已发布的 IAL 报告具有不同程度的保真度。

对于 Don Knuth 的 Burroughs 205 编译器,we can look at the listings

跟进另一个 dave 的回答,在 http://ed-thelen.org/comp-hist/B5000-AlgolRWaychoff.html

上有关于为 B205 编写 Algol 编译器的详细说明

这里是关于 Donald Knuth 的那个帐户的摘录。 “6 月,我们被介绍给这个总是用小写字母签名的高个子大学生。他是 don knuth。他与 Brad MacKenzie 签约编写一个 205 Algol 58 编译器,它将是 220 Algol 58 编译器的一个子集由 Jack Merner 和 Joel Erdwin 撰写。

don声称他可以在三个半月的暑假里自己写出编译器和语言手册。他说他愿意出 5000 美元。我们的 Fortran 编译器需要一张卡片 reader,卡片打孔器。行式打印机和自动浮点。唐说他不需要卡片 reader 或卡片打孔器,但他想要磁带机和纸带。我问杰拉德·古尤德,如果布拉德只打算花三个半月的时间,他怎么会被骗去付给这个大学生 5000 美元来写一些必须是垃圾的东西。杰勒德低声回应我。他说 "We think that he already has it written. He probably did it in his spare time while working in the computer center at Case Institute." 我仍然对这个答案不完全满意,因为我是一名大学毕业生,第一份工作每月 325 美元,而我刚刚换了工作,每月赚 525 美元。除此之外,凡人需要 25 个人年来编写编译器:而不是三个半个人月。我以为布拉德已经失去理智了。"