1

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

4

4 回答 4

2

我不确定这个问题的背景。不同的制造商提供了不同的 Algol 方言。

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

1970 年,我加入了 Burroughs Machines Ltd,并与 B6500 及其后续产品一起工作。它的 Algol 编译器是用 Algol 编写的,它是用来编译自己的!这是我们必须机器编码的最接近的东西!支持软件的大部分组成部分都是用 Algol 编写的。EG 所有其他语言编译器!(基本、PL/I、Cobol、Fortran)

如果你反对这里有鸡和蛋的问题,你是完全正确的。

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

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

于 2018-08-10T15:11:46.570 回答
2

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

于 2016-08-03T19:00:21.973 回答
0

跟进另一个戴夫的回答,在http://ed-thelen.org/comp-hist/B5000-AlgolRWaychoff.html上有详细说明为 B205 编写 Algol 编译器

对于这种情况,这里是关于唐纳德·克努斯的那个账户的摘录。“6 月,我们被介绍给这个高个子的大学生,他的名字总是用小写字母签名。他是唐克努特。他与 Brad MacKenzie 签订了合同,编写了一个 205 Algol 58 编译器,该编译器将是 220 Algol 58 编译器的一个子集,由 Jack Merner 和 Joel Erdwin 编写。

唐声称他可以在三个半月的暑假期间独自编写编译器和语言手册。他说他愿意花5000美元。我们的 Fortran 编译器需要读卡器、打卡器。行式打印机和自动浮点。唐说他不需要读卡器或打卡器,但他需要一个磁带单元和纸带。我问杰拉德·古约德,如果布拉德只花三个半月的时间,他怎么会被骗付给这个大学生 5000 美元来写一些必须是垃圾的东西。杰拉德低声回答我。他说:“我们认为他已经写好了。他可能是在凯斯研究所计算机中心工作的业余时间写的。” 我还是' 我对这个答案完全不满意,因为我是一名大学毕业生,第一份工作是每月 325 美元,而我刚刚换了工作,每月赚 525 美元。除此之外,人类编写编译器需要 25 个人年:而不是三个半人月。我以为布拉德已经离开了他的感官。”

于 2019-11-19T01:33:31.410 回答
0

“Algol 58 编译器”的措辞暗示只有一个,但事实并非如此;有不少,对已发布的 IAL 报告有不同程度的忠实度。

对于 Don Knuth 的 Burroughs 205 编译器,我们可以查看清单

于 2019-05-28T23:56:19.713 回答