2009-10-21 55 views
22

有谁知道我在哪里可以得到一个好的B编译器?我已经搜索了一段时间的B编译器,但是在Windows或Linux系统上找到任何完整的东西都有些困难。有没有人有一个工作的B编译器?

这里是B的一个例子:

main() { 
auto a, b, c, sum; 
a = 1; b = 2; c = 3; 
sum = a+b+c; 
putnumb(sum); 
} 
+10

类似的堆栈溢出可以克隆在7月4日周末? ;) – Oorang 2009-11-16 20:02:54

+0

https://github.com/sergev/b有一些B相关的东西,特别是一些PDF。 – yeti 2016-01-08 02:13:48

+0

我向安东尼道歉,以及任何可能因我之前的评论而感到灰心的人。这是不敬的,不恰当的,并没有提供任何有用的信息。 – 2016-03-24 07:14:33

回答

8

你有霍尼韦尔6050运行GCOS上运行呢?或者也许是一个模拟器?我知道IBM的360和370已经被仿效,但我还没有听说过霍尼韦尔6000仿真器。

在1974-76年滑铁卢大学的时间框架中,我记得在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 series 60仿真器,那么您可以使用Thinkage的UW Tools Package中包含的B编译器。它支持批处理和TSS程序。

+0

B也是在Unix的第一版中实现的,尽管它很快被C取代。 – 2012-11-17 02:00:33

11

这个问题的推动下,现在有A B编译器可从这里:在Windows,Linux和OSX https://github.com/Leushenko/ybc

奔跑(二进制文件提供的;它是写在一个不起眼的语言问题的精神) ,它生产的x86-32组件质量很差。应该是GCC兼容的。它是从B上可用的参考资料中重新构建而来的,几乎可以肯定不能反映1960年代的语言。值得注意的是,在没有类型信息(B是无类型的)的情况下,&a[b] == &*(a + b)规则不能在x86上保存,这意味着这个任务实际上是不可能的(不借助于解释器)。

除此之外,帕维尔Minaev的评论是正确的:描述语言非常小,远远小于C,和经验丰富的/主管编译器程序员可以在一个下午可能写一个给你。

不幸的是,这只是一个部分的答案,因为我不能告诉你在哪里可以找到好的 B编译器。

+2

酷!使用'.'作为B中的有效标识符,或许我们最终可能会混淆代码golf中的一些BrainF * ck类型:) – 2014-10-08 01:08:49

+1

这非常好。我能够在B中实现一个fizzbuzz。谢谢! https://github.com/jurgemaister/fizzbuzz/blob/master/fizzbuzz.b – jurgemaister 2015-04-16 09:46:23

+1

@ 500-InternalServerError:'.'是一个在B中的有效标识符?根据[B手册](http://cm.bell-labs.com/cm/cs/who/dmr/kbman.pdf),标识符是* alpha *,后跟0到7 * alpha *或*数字*。 “语法变量'alpha'没有定义,它表示字符A到Z,a到z,和backspace。” (我不知道为什么包含退格) – 2015-08-29 21:10:50

相关问题