有人知道在哪里可以获取一个好的B编译器吗?我已经寻找B编译器有一段时间了,但是在Windows或Linux系统上找到完整的东西比较困难。
这里是B的一个示例:
main( ) {
auto a, b, c, sum;
a = 1; b = 2; c = 3;
sum = a+b+c;
putnumb(sum);
}
有人知道在哪里可以获取一个好的B编译器吗?我已经寻找B编译器有一段时间了,但是在Windows或Linux系统上找到完整的东西比较困难。
这里是B的一个示例:
main( ) {
auto a, b, c, sum;
a = 1; b = 2; c = 3;
sum = a+b+c;
putnumb(sum);
}
&a[b] == &*(a + b)
规则不适用,这意味着这项任务实际上是不可能完成的(除非使用解释器)。除此之外,Pavel Minaev的评论是正确的: 所描述的语言非常小,比C小得多,有经验/能干的编译器程序员可能可以在一个下午内为您编写一个。不幸的是,这只是部分答案,因为我无法告诉您哪里可以找到一个好的B编译器。.
是一个有效的标识符,也许我们最终可以混淆一些在代码高尔夫中使用BrainF*ck的人 :) - 500 - Internal Server Error.
视为有效标识符?根据 B手册 ,标识符是以 alpha 开头,后跟0到7个 alphas 或 digits 。 “语法变量'alpha'未定义。它代表字符A到Z,a到z,_和退格键。”(我不知道为什么包括退格键。) - Keith Thompson。
被列为字母字符之一,该文档描述了与 Thompson 手册略有不同的语言版本(B 没有标准化;我认为设计师会随时添加功能)。 - Alex Celeste&a[b] == &*(a + b)
不成立的原因很简单。请记住B是按字寻址而不是按字节寻址。将指针加一并不能使其增加到下一个字节,而是增加到下一个字——在像x86这样的非字寻址平台上,您需要在解引用指针时将它乘以字大小。(B根本无法寻址字节。) 这个问题可以轻松地修复。 - David Given