Перейти к содержанию
100% локально

Кодировщик Brainfuck

Преобразуйте текст в программу Brainfuck, которая его выведет, или запустите программу Brainfuck и посмотрите результат.

Входные данные
Выходные данные

Кодировщик Brainfuck

Вставьте любой текст, и этот инструмент создаст программу Brainfuck, которая выведет его в точности, символ за символом. Он также работает в обратном направлении: вставьте программу Brainfuck, и инструмент запустит её, показав весь её вывод. Переключайтесь между двумя режимами с помощью опции режима или используйте кнопку обмена для отправки созданной программы прямо в интерпретатор.

Включите "Оптимизировать длину циклами", чтобы сделать созданную программу короче: вместо повторения + до 255 раз для одного символа она построит значение с небольшим циклом умножения, что важно, когда ввод превышает несколько слов. Размер ячейки определяет, как хранится каждый символ: 8-бит — это классический Brainfuck с одной ячейкой на байт, соответствующий тому, как работают реальные интерпретаторы и UTF-8, а ячейки размером 16 и 32 бита хранят целую кодовую точку на ячейку, так что ударные буквы и эмодзи корректно перемещаются без дополнительных байтов. Ячейки памяти определяют, сколько ячеек памяти доступно интерпретатору, а лимит шагов предотвращает зависание страницы от бесконечного цикла. Поднимите его для программы, которой действительно нужно больше шагов, или понизьте его при тестировании чего-то ненадёжного. "Показать состояние памяти после выполнения" добавляет снимок ячеек памяти после завершения программы, что полезно для отладки циклов, которые не выводят ожидаемый результат. Созданный код также может быть перенесён по фиксированной ширине строки для более удобного чтения; сам Brainfuck игнорирует пробелы и любой символ, который не является одной из его восьми команд, поэтому перенос никогда не меняет то, что делает программа.

Очень длинный ввод создаёт более длинную программу, и обе операции ограничены, чтобы вкладка браузера никогда не зависла на случайном бесконечном вводе или цикле — вы получите чёткое сообщение, рассказывающее вам, что нужно отрегулировать, вместо зависшей страницы.

Всё выполняется локально в вашем браузере; текст и код никогда не загружаются никуда. Скопируйте результат, загрузите его как .txt-файл, очистите панель или отправьте вывод обратно на вход для продолжения работы.

FAQ

Что такое Brainfuck?
Brainfuck — это минималистичный эзотерический язык программирования, имеющий всего восемь команд и построенный вокруг ленты ячеек памяти и одного указателя. Он популярен как любопытство и вызов для кода-гольфа, но не для реальных программ.
Почему созданная программа выглядит иначе каждый раз, когда я меняю размер ячейки?
Размер ячейки определяет, какое значение хранится каждый символ. Ячейки размером 8 бит содержат один байт UTF-8, поэтому ударный символ или эмодзи нуждаются в нескольких ячейках; ячейки размером 16 и 32 бита могут содержать весь символ сразу, что меняет как значения, так и кратчайший путь к ним.
Что происходит, если в моей программе есть бесконечный цикл?
Интерпретатор останавливается, как только достигает лимита шагов, и сообщает, что программа не завершена, вместо того чтобы зависать страницу. Поднимите лимит шагов, если программе действительно требуется больше шагов, или исправьте цикл.
Работает ли команда запятой (ввод)?
Инструмент не имеет отдельного потока ввода для запущенной программы, поэтому `,` всегда читается как конец файла и устанавливает текущую ячейку на 0 — то же поведение, к которому большинство интерпретаторов обращаются, когда ввод заканчивается.
Мой текст или код загружается где-то?
Нет. Как кодирование, так и запуск программы происходят полностью в вашем браузере — ничего из того, что вы вставляете здесь, никогда не отправляется на сервер.