Brainfuck与1位存储单元?

时间:2017-02-04 11:04:51

标签: binary brainfuck turing-complete esoteric-languages

编程语言Brainfuck的实现,如果其内存单元的容量为1位,而不是通常的8位,仍然可以完成吗?

+和 - 指令变得相同,但这不一定是个问题。

我认为没有问题,例如4位存储器单元,但如果它一直扩展到单个位值,我就无法解决。

1 个答案:

答案 0 :(得分:7)

是的,结果语言仍然是Turing-complete。实际上,存在几种这样的语言。其中一个是Boolfuck。它完全符合你的建议:让每个单元格成为一个位并摆脱-,因为它是多余的。它还使用;代替.进行输出。 The official website包含从Brainfuck到Boolfuck的减少,这证明了Boolfuck的图灵完整性。我在这里重申减少以使答案自成一体:

Brain.  Bool.
+       >[>]+<[+<]>>>>>>>>>[+]<<<<<<<<<
-       >>>>>>>>>+<<<<<<<<+[>+]<[<]>>>>>>>>>[+]<<<<<<<<<
<       <<<<<<<<<
>       >>>>>>>>>
,       >,>,>,>,>,>,>,>,<<<<<<<<
.       >;>;>;>;>;>;>;>;<<<<<<<<
[       >>>>>>>>>+<<<<<<<<+[>+]<[<]>>>>>>>>>[+<<<<<<<<[>]+<[+<]
]       >>>>>>>>>+<<<<<<<<+[>+]<[<]>>>>>>>>>]<[+<]

其他基于比特的Brainfuck衍生物包括SmallfuckBitChangerThis article也可能是您感兴趣的,它通过删除冗余(包括使用位而不是字节)来完成最小化Brainfuck语言的几个步骤。