5

有没有人知道一个工作BCPL编译器,为当前操作系统编写(我有Windows 7和Ubuntu随时可用)与x64架构?在Dennis Ritchie最近去世后,我第一次听说过BCPL,而且我很少被我读过关于这种语言的东西迷住了。当前操作系统和架构的BCPL编译器/解释器?

我以前只使用过现代高级语言,但我认为这将是一个很好的潜入这一点的计算历史。然而,我几乎不知道编译器,所以我不打算自己写一个。有什么建议么?

回答

7

BCPL Wikipedia article包含一个用于Martin Richards's BCPL distribution的URL,其中包括可在Linux和Windows上运行的解释器等。

README

它提供了BCPL的机器无关的解释版本。在C语言中实现了解释器,但是对于某些体系结构,它也有一个以汇编语言实现的版本,可以提供改进的性能,例如 。

本发行版包括系统的Linux版本,DEC的Alpha 机,MIPS R2000/3000和Mac功耗PC,Sun4s,孙/ SPARCS和 386/486 MSDOS下/奔腾机,在Windows 95/98/NT/2000/XP, Windows CE2.0(适用于HP 620LX),Mac OS X或OS/2。一些 实现最近还没有经过测试,而且不在 的日期。最简单的安装是针对Linux机器的。其他机器的安装在后面介绍。此发行版包含 可执行文件:cintsys.exe,该文件应在大多数Windows系统上运行,在 奔腾机器上运行。

理查兹教授也在研究64 bit version of BCPL,尽管它看起来不像他的BCPL发行版那么经得起时间考验。

+0

啊,的确如此。没有注意到。这个页面实际上解决了另一个谜团,因为我读过BCPL的解释,这在其他地方是相互矛盾的。据推测,解释者后来写了,因为它是在C中。谢谢! – andronikus

3

BCPL编译为一种称为OCODE的中间语言,然后各种第二代代码从OCODE生成为某种形式的可执行代码。 Martin Richards最初生成INTCODE,他的关于BCPL编译器的书显示了如何为INTCODE编写解释器。我已经在许多机器上编写了INTCODE解释器,包括20世纪70年代的FORTRAN和最近的一种Java。他在网站上的下载是为了大大增强和扩展BCPL(尤其是图书馆),现在编译成CINTCODE,并且有许多解释器主要用C语言编写,适用于许多架构。