HTTPS SSH

|_ (_ / | / |_)|_ |_)|_)|_| | |||_ | |/ |/ / / |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[30000], *p = m; int main(void) {

PUTS("Hello World!"); return 0;

}

Surprisingly I had seen no compiler reached this one! So I started to make my own compiler; Esotope Brainfuck Compiler is the result. (Actually, there are now one or two other compilers reached this state, but they are inspired by Esotope Brainfuck Compiler.)

Esotope Brainfuck Compiler requires Python 2.5 or later. Optionally you can use Psyco JIT compiler for better performance; Psyco is certainly required for very large Brainfuck code, including Jon Ripley's The Lost Kingdom.

Use "esotope-bfc" Python script to invoke Esotope Brainfuck Compiler. It can read the code from the given file, or standard input ("-"):

$ ./esotope-bfc - +[] ^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 */

}

Esotope Brainfuck Compiler is written by Kang Seonghoon. It can be freely used and redistributable under the terms of MIT license.