有谁知道我可以在哪里得到一个好的B编译器?我已经搜索了一段时间的B编译器,但是在查找Windows或Linux系统的任何完整内容时遇到了一些困难.
这是B的一个例子:
main( ) { auto a, b, c, sum; a = 1; b = 2; c = 3; sum = a+b+c; putnumb(sum); }
Leushenko.. 13
在这个问题的提示下,现在可以从这里找到一个B编译器:https://github.com/Leushenko/ybc
在Windows,Linux和OSX上运行(提供的二进制文件;在问题的精神中,它是用一种不起眼的语言编写的),它产生质量非常差的x86-32程序集.应该是GCC兼容的.它是用B上可用的参考资料重建的,几乎可以肯定不会反映出20世纪60年代的语言.值得注意的是,在没有类型信息的情况下(B是无类型的),&a[b] == &*(a + b)
规则不能保留在x86上,这意味着这个任务实际上是不可能的(不需要求助于解释器).
除此之外,Pavel Minaev的评论是正确的:所描述的语言非常小,远小于C语言,并且经验丰富/称职的编译程序员可能会在一个下午为您编写一个.
不幸的是,这只是一个部分答案,因为我无法告诉你在哪里找到一个好的 B编译器.
在这个问题的提示下,现在可以从这里找到一个B编译器:https://github.com/Leushenko/ybc
在Windows,Linux和OSX上运行(提供的二进制文件;在问题的精神中,它是用一种不起眼的语言编写的),它产生质量非常差的x86-32程序集.应该是GCC兼容的.它是用B上可用的参考资料重建的,几乎可以肯定不会反映出20世纪60年代的语言.值得注意的是,在没有类型信息的情况下(B是无类型的),&a[b] == &*(a + b)
规则不能保留在x86上,这意味着这个任务实际上是不可能的(不需要求助于解释器).
除此之外,Pavel Minaev的评论是正确的:所描述的语言非常小,远小于C语言,并且经验丰富/称职的编译程序员可能会在一个下午为您编写一个.
不幸的是,这只是一个部分答案,因为我无法告诉你在哪里找到一个好的 B编译器.
您是否有运行GCOS的Honeywell 6050来运行它?或者也许是模拟器?我知道IBM的360和370已被模拟,但我还没有听说过霍尼韦尔6000仿真器.
在1974年至1976年的滑铁卢大学时间框架中,我记得在B中编写了CS作业而不是Algol-60,这是班上大多数人使用的.我接着为HP 2100A小型机编写了一个仿真器,但该代码很久以来就丢失了.
据我所知,B只在霍尼韦尔实现了它的36位字长,9位ASCII等.而且由于它是C的继承者,同时也在大学里,但它并没有持续很长时间.
如果我没记错的话,MKS的创始人之一Trevor Thompson为B编写了一个标准的I/O库,并在其中编写了一个3D国际象棋游戏.如果你能设法追踪他,那么他就是一个曾经在B编译器上工作过的人.我只是看看LinkedIn,我发现了他.他是Satori Solutions的所有者之一.
如果您有运行GCOS的计算机或运行GCOS的Honeywell 60系列仿真器,那么您可以使用Thinkage 的UW工具包中包含的B编译器.它支持批处理和TSS程序.