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

问题描述 投票:0回答:4

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

compiler-construction history algol
4个回答
3
投票

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


3
投票

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

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

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

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

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

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


0
投票

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

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


0
投票

根据另一个戴夫的回答,在 http://ed-thelen.org/comp-hist/B5000-AlgolRWaychoff.html

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

为了了解这一点,这里有一段关于唐纳德·高德纳 (Donald Knuth) 的报道的摘录。 “今年 6 月,我们认识了这个身材高大的大学生,他的名字总是用小写字母签名。他叫唐·克努斯 (don knuth)。他与 Brad MacKenzie 签订合同,编写一个 205 Algol 58 编译器,该编译器将是 220 Algol 58 编译器的子集,该编译器是 220 Algol 58 编译器的子集。由 Jack Merner 和 Joel Erdwin 撰写。

don声称他在三个半月的暑假里可以自己编写编译器和语言手册。他说他愿意花 5000 美元来做这件事。我们的 Fortran 编译器需要读卡器、打卡器。行式打印机和自动浮点。唐说他不需要读卡器或打卡器,但他想要磁带装置和纸带。我问杰拉德·古约德(Gerard Guyod),布拉德怎么会被骗去付给这个大学生 5000 美元,让他写出一些如果他只花三个半月的时间写出来的东西,那么他一定是一堆垃圾。杰拉德低声回答我。他说:“我们认为他已经写好了。他可能是在凯斯研究所计算机中心工作的业余时间写的。”我对这个答案仍然不完全满意,因为我是一名大学毕业生,第一份工作的月薪为 325 美元,而我刚刚换了工作,月薪为 525 美元。除此之外,凡人需要花费 25 个人年的时间来编写编译器:而不是三个半人月。我以为布拉德已经失去了理智。”

© www.soinside.com 2019 - 2024. All rights reserved.