-- Eriks BrainFuck compiler/interpreter/etc suite -- Intro Compiling and Installing Status Links Contact == Intro == BrainFuck (bf) is a minimal language created by Urban Mller. It is basically a simple turing machine with two extra operations; input and output. This suite implements a bf to ansi C compiler, bf to intel x86 (with both linux and bsd call conventions) compiler, and an "interpreter". All tools use the same lexer, parser and optimizer code. The interpreter is actually a JIT compiler to a bytecode with minimal virtual machine (vm) implementation. Compilation and execution happens at the EOF character, so it's not really an interpreter. I intend to allow immediate execution in the future, perhaps using newline as a trigger to attempt compilation (if a newline occurs inside of a loop construct, execution of the partially defined loop does not make sense). The intermediate code is a superset of the language. The 'compacter' and 'zero deducer' optimizers necessitated a broader set (numeric constants, add, subtract, set) of opcodes. My intent is to make this as readable and modular as possible. The original goal was to make a trivial system to experiment with various optimization ideas. It's not "clever", fancy, or terribly impressive. == Compiling and Installing Standard autoconf system with no special configure knobs. $ ./configure && make install == Status == Interpreter (bfi) Functional. Not interactive. Compiler to C Functional, complete. Compiler to x86 asm Functional, complete. TODO make interpreter interactive non-x86 asm output direct machine code output? optimizations! boot sector interpreter for x86 (bf as an os) == Links == All hail wikipedia, keeper of truthiness http://en.wikipedia.org/wiki/Brainfuck Awesome stuff at this site http://www.muppetlabs.com/~breadbox/bf/ collection of shtuff http://esoteric.sange.fi/brainfuck/ == Contact == erik@smluc.org, ``Erik on efnet or freenode