Elikaski/BF-it: A C-like Language To Brainfuck Compiler ... - GitHub

A compiler from a C-like language to Brainfuck
Always heard that Brainfuck is Turing complete but still had doubts about its computational power? Those days are over
What is this?
BF-it is a Compiler of a C-like language to Brainfuck, written in Python
You give it C-like code, and it gives you Brainfuck code with the same functionality :)
Why did you create it?
There are several reasons why I chose to create this
- I always heard that Brainfuck is Turing complete, and therefore as strong as any other language
- I wanted to put that to the test, and find a concrete proof that it is true
- I find it beautiful how a seemingly bunch of nonsense characters can have a logical meaning / functionality
- I wanted to take it to the extreme
- I wanted to practice my developing skills
- It seemed to be like a real challenge (and it was!)
- But mostly, and most importantly, I did it for teh lulz
What can I use it for?
Create a Brainfuck code of your choice, send it to your friends, and tell them to run it (on some online interpreter, for example)
When they receive a bunch of nonsense which does something meaningful, they will (maybe) be amazed
How do I use it?
- Write a C-like code (example programs included) into a file
- Open your favorite command line interface
- Run BF-it.py <path_to_code_file>
- This will compile your file and create a .bf file with Brainfuck code
- (optional parameters: -o for output file, and -r for running the compiled file)
- Run Interpreter.py <path_to_bf_file>, this will execute the Brainfuck code
Example:
$ cat helloworld.code int main() { print("Hello World!\n"); } $ ./BF-it.py helloworld.code Compiling file 'helloworld.code'... Compiled successfully to 'helloworld.bf' $ cat helloworld.bf >[-]>[-]<>++++++++[-<+++++++++>]<.>++++[-<+++++++>] <+.+++++++..+++.>++++++[-<------------->]<-.>+++++[ -<+++++++++++>]<.>++++[-<++++++>]<.+++.------.----- ---.>++++++[-<----------->]<-.>+++[-<------->]<--.< $ ./Interpreter.py helloworld.bf Hello World!For a more interesting example, check out Tic-Tac-Toe!

- Take a look at tic_tac_toe.code in the 'examples/games' directory
- Run ./BF-it.py examples/games/tic_tac_toe.code -r
- Play around
- If you're brave, take a look at the generated Brainfuck code
- If you're very brave, try to understand it (I can't)
How do I write code?
Please refer to the 'examples' directory. It contains examples and explanations for syntax, operations, flow, and more
I would like to add a feature / fix a bug
If you would like to add a feature yourself, perform a pull request and add your changes. I will review them
If you found a bug, or have an idea for a feature, open an issue
References I used:
- https://esolangs.org/wiki/brainfuck_algorithms for basic Brainfuck algorithms
- https://www.iamcal.com/misc/bf_debug/ for debugging Brainfuck code
- https://fatiherikli.github.io/brainfuck-visualizer/ for debugging Brainfuck code
- https://godbolt.org/ for comparing my C-like compiler to other C compilers' implementations
- https://www.lysator.liu.se/c/ANSI-C-grammar-y.html for creating a grammar
- https://introcs.cs.princeton.edu/java/11precedence/ for operator precedence
- https://logomakr.com/ for creating a logo
- https://www.youtube.com/ for setting the mood
Từ khóa » C Bf C
-
BF/C The Unexpected Consequences Of Feathers
-
BF/C - SoundCloud
-
BF/C On Apple Music
-
Welcome To CBFC
-
Year Of The Rat - BF/C - YouTube
-
Trying To Raise A Baby With Your Hot Demon Ex-bf Is...complicated
-
BF/C - Spotify – Web Player
-
Central Board Of Film Certification - Wikipedia
-
[PDF] N BF C CD - Bristan
-
BF/C - Facebook
-
Photoperiodic Regulation Of The C-repeat Binding Factor (CBF) Cold ...
-
BF After C-Sections (1) - Breastfeeding Mothers' Support Group
-
DMS-20PC-1-LM-BF-C Murata Power Solutions | Mouser Singapore