I was bored so i made a python compiler for brainf*ck programming language.
Links
Source Code (Github)
What is Brainf*ck?
Example Brainf*ck Program
[ This program prints "Hello World!" and a newline to the screen, its length is 106 active command characters. [It is not the shortest.] This loop is an "initial comment loop", a simple way of adding a comment to a BF program such that you don't have to worry about any command characters. Any ".", ",", "+", "-", "<" and ">" characters are simply ignored, the "[" and "]" characters just have to be balanced. This loop and the commands it contains are ignored because the current cell defaults to a value of 0; the 0 value causes this loop to be skipped.]++++++++ Set Cell #0 to 8[>++++ Add 4 to Cell #1; this will always set Cell #1 to 4[ as the cell will be cleared by the loop>++ Add 2 to Cell #2>+++ Add 3 to Cell #3>+++ Add 3 to Cell #4>+ Add 1 to Cell #5<<<<- Decrement the loop counter in Cell #1] Loop till Cell #1 is zero; number of iterations is 4>+ Add 1 to Cell #2>+ Add 1 to Cell #3>- Subtract 1 from Cell #4>>+ Add 1 to Cell #6[<] Move back to the first zero cell you find; this will be Cell #1 which was cleared by the previous loop<- Decrement the loop Counter in Cell #0] Loop till Cell #0 is zero; number of iterations is 8The result of this is:Cell No : 0 1 2 3 4 5 6Contents: 0 0 72 104 88 32 8Pointer : ^>>. Cell #2 has value 72 which is 'H'>---. Subtract 3 from Cell #3 to get 101 which is 'e'+++++++..+++. Likewise for 'llo' from Cell #3>>. Cell #5 is 32 for the space<-. Subtract 1 from Cell #4 for 87 to give a 'W'<. Cell #3 was set to 'o' from the end of 'Hello'+++.------.--------. Cell #3 for 'rl' and 'd'>>+. Add 1 to Cell #5 gives us an exclamation point>++. And finally a newline from Cell #6
Config
Check config.json first, quick information about config.json;
{"MEM":20,// MEM is the total cells for our brainfuck program."DUMP_FILE":"./result/dump.py",// The dump file that will write when program finished and got some informations about the code."COMPILE_FILE":"./result/compiled.py",// The file that will write when brainfuck code turned into python code."LOG_FILE":"./result/logs.txt",// Log file for our program actions."DEBUG":true// Allow debug mode for compiler, will log everything to console.}
Usage
Simple Usage;python compiler.py ./example/fibonacci.bf
Output:... 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 ...
And also you can check./result/dump.py
for some informations about program;
# DUMP RESULT | 13/05/2021 16:59:13# =======================================================# TOTAL CELL GIVEN: 20# TOTAL CELL USED: 4# TOTAL BYTE USED: 309# MEMORY DUMP: [# CELL_0 -> 0 BYTE# CELL_1 -> 144 BYTE# CELL_2 -> 89 BYTE# CELL_3 -> 0 BYTE# CELL_4 -> 0 BYTE# CELL_5 -> 44 BYTE# CELL_6 -> 32 BYTE# CELL_7 -> 0 BYTE# CELL_8 -> 0 BYTE# CELL_9 -> 0 BYTE# CELL_10 -> 0 BYTE# CELL_11 -> 0 BYTE# CELL_12 -> 0 BYTE# CELL_13 -> 0 BYTE# CELL_14 -> 0 BYTE# CELL_15 -> 0 BYTE# CELL_16 -> 0 BYTE# CELL_17 -> 0 BYTE# CELL_18 -> 0 BYTE# CELL_19 -> 0 BYTE# ]# MINIFIED VERSION: [# LINE_1 -> +++++++++++>+>>>>++++++++++++++++++++++++++++++++++++++++++++>++++++++++++++++++# LINE_2 -> ++++++++++++++<<<<<<[>[>>>>>>+>+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]<[>++++++++++[# LINE_3 -> -<-[>>+>+<<<-]>>>[<<<+>>>-]+<[>[-]<[-]]>[<<[>>>+<<<-]>>[-]]<<]>>>[>>+>+<<<-]>>>[# LINE_4 -> <<<+>>>-]+<[>[-]<[-]]>[<<+>>[-]]<<<<<<<]>>>>>[++++++++++++++++++++++++++++++++++# LINE_5 -> ++++++++++++++.[-]]++++++++++<[->-<]>+++++++++++++++++++++++++++++++++++++++++++# LINE_6 -> +++++.[-]<<<<<<<<<<<<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<-[>>.>.<<<[-]]<<[>>+>+<<<-]>># LINE_7 -> >[<<<+>>>-]<<[<+>-]>[<+>-]<<<-]# ]# =======================================================# Code Starts Here ...
Notes
This program may have some bugs. If you found a bug, please contribute!
Top comments(4)
Subscribe

Alex Esoposting•
A student eager to learn anything except from things taught at school, huge brainfuck fan, author of 2.5 esolangs and lover of everything niche, useless and fun.
- LocationWarsaw, Poland
- EducationWarsaw University of Technology (studying)
- WorkJunior Software Developer at COMP s. a.
- Joined
Wait, so you compile brainfuck into valid python code? That's so beautifully useless, a gorgeous overkill. I love it!
For further actions, you may consider blocking this person and/orreporting abuse