Brainfuck с 1-битными ячейками памяти?

Будет ли реализация языка программирования Brainfuck по-прежнему завершена, если его ячейки памяти будут иметь емкость 1 бит вместо обычных 8 бит?

Инструкции + и - становятся идентичными, однако это не должно быть проблемой.

Я не вижу проблем с, например, 4-битными ячейками памяти, но я не могу решить, если это масштабируется до однобитовых значений.

1 ответ

Решение

Да, итоговый язык все равно будет завершен по Тьюрингу. На самом деле существует несколько таких языков. Одним из них является Boolfuck. Это именно то, что вы предлагаете: каждая клетка должна быть единственной и избавиться от -потому что это избыточно. Он также использует ; вместо . для вывода. Официальный сайт содержит сокращение от Brainfuck до Boolfuck, что доказывает полноту по Тьюрингу. Я повторяю сокращение здесь, чтобы сделать ответ автономным:

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

Другие основанные на битах производные Brainfuck включают Smallfuck и BitChanger. Эта статья также может быть интересна для вас, которая состоит из нескольких этапов минимизации языка Brainfuck путем удаления избыточности (включая использование битов вместо байтов).

Другие вопросы по тегам