BF tools manual bfc.exe - BF to C compiler bfc Compile BF program specified in stdin, write output to stdout. bfc Compile BF program specified in , write output to stdout. bfc Compile BF program specified in , write output to . Data tape size of output program is specified at compile time (0x10000), code size is unlimited. Output C source is also a valid BF program, furthermore: ./bfc prog.bf ./bfc prog.bf | ./bfc ./bfc prog.bf | ./bfc | ./bfc ... will all produce the exact same output. If data pointer move outside of tape range, the behavior is undefined. Output C code does include an exception handler, but that's not always helpful. To be sure that the BF program will not overflow/underflow the data tape, run the code with an interpretor first. bfi.exe - BF interpretor (C version) bfi Run BF program specified in stdin, write output to stdout. bfi Run BF program specified in , reading input from stdin, writing output to stdout. bfi Run BF program specified in , reading input from , writing output to stdout. bfi Run BF program specified in , reading input from , writing output to . Code and data tape sizes are specified at compile time (0x10000). If BF program exceeds those limits, interpretor will terminate with error message. Because the interpretor optimizes code at load time, the amount of space available for code is often more than 0x10000. To check how much code/data space is needed, run the Perl version of the interpretor. bfi.pl - BF interpretor (Perl version) Command line arguments are the same as the C version. The Perl version supports infinite code/data tapes, which grows dynamically as the program uses them. At exit, interpretor will print out the size of code (optimized/unoptimized) and data tapes required to run the program. This version also includes an infinite loop check. If an infinite loop is detected, program will terminate early with error message. Works for most programs but not all, read the source for details.