README.txt
April 24, 2026 ยท View on GitHub
|_ (_ / \ | / |)| |)|)|| | ||| | |/ |/ / / |V||) | | | |) |)_/ | _/| | |)| | ||| || ||_|\ __/| || |||| \
by Kang Seonghoon <esotope+bfc@mearie.org>
This is the Esotope Brainfuck Compiler: the world's most optimizing Brainfuck- to-something compiler. Well, it is not a Something-to-Brainfuck compiler like Jeffry Johnston's BFBASIC, but it translates the Brainfuck code into efficient target language code (and possibly human-readable), so in this sense it is actually a decompiler rather than compiler.
There are many Brainfuck-to-C compilers (or Brainfuck-to-ELF compiler, and so on) available, but there are almost no compiler which can translate the following Brainfuck code:
>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++[
<++++>-]<.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+.
...into something like the following code:
/* generated by esotope-bfc */
#include <stdio.h>
#include <stdint.h>
#define PUTS(s) fwrite(s, 1, sizeof(s)-1, stdout)
static uint8_t m[1], *p = m;
int main(void) {
PUTS("Hello World!");
return 0;
}
At the time of writing this compiler there was no compiler reaching this state, so I started to make my own compiler; Esotope Brainfuck Compiler is the result. Nowadays this feat is accomplished by multiple compilers, but Esotope Brainfuck Compiler inspired them and was the first one to do so.
==========
HOW TO USE
==========
Esotope Brainfuck Compiler requires Rust and no other prerequisite. The standard
Cargo command applies (including -r for more performance); it can read the
code from the given file, or standard input ("-"):
$ cargo run -
+[]
^D
/* generated by esotope-bfc */
#include <stdio.h>
#include <stdint.h>
static uint8_t m[30000], *p = m;
int main(void) {
while (1); /* infinite loop */
}
=======
LICENSE
=======
Esotope Brainfuck Compiler is written by Kang Seonghoon. It can be freely used and redistributable under the terms of MIT license.