我正在研究一个直接解释 brainfuck 的物理面包板 8 位 CPU。
语言规范表明左括号和右括号都有逻辑:
[ => Jump to matching ] If Zero
] => Jump to matching [ Unless Zero
但是按照我制作 CPU 的方式,我无法实现第一条规则,找到匹配的右括号会很困难。
将左括号逻辑更改为什么都不做而只保留右括号逻辑会产生什么后果?它会影响语言的图灵完备性吗?
我知道它不会真的是 Brainfuck 了,现有的程序可能不再正常工作,例如:
[+.]
经典的 brainfuck:不会做任何事情
我修改后的 brainfuck:将打印从 0 到 255 的每个字符(或者如果单元格不循环回到 0 则出现溢出错误)
最佳答案
讨论中here , Int-e 通过从略微有限的常规 brainfuck 形式(必须在开始时获得所有输入)减少,显示这种“do-while brainfuck”变体是图灵完备的。如果你愿意,我可以将我的通用图灵机程序翻译成这个变体。
关于brainfuck - 如果左括号什么都不做,brainfuck 仍然是图灵完备的吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73747401/