2009-10-21 86 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

相關問題