All Projects → hunar1997 → FasterBrainfuckProgramming

hunar1997 / FasterBrainfuckProgramming

Licence: GPL-3.0 license
This project is to make brainfuck language programming easier, faster and more powerful .. everything is made out of functions making it very easy to port to other languages

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to FasterBrainfuckProgramming

BF-it
A C-like language to Brainfuck compiler, written in Python
Stars: ✭ 101 (+431.58%)
Mutual labels:  brainfuck, brainfuck-compiler
llvm-brainfuck
Brainfuck compiler based on LLVM API
Stars: ✭ 27 (+42.11%)
Mutual labels:  brainfuck, brainfuck-compiler
asmbf
The only true brainfuck-targetting assembler.
Stars: ✭ 81 (+326.32%)
Mutual labels:  brainfuck, brainfuck-compiler
bfboot
A full brainfuck to bootable OS image compiler.
Stars: ✭ 35 (+84.21%)
Mutual labels:  brainfuck, brainfuck-compiler
BrainF.Net
A .NET brainfuck code parsing and execution library
Stars: ✭ 23 (+21.05%)
Mutual labels:  brainfuck, brainfuck-compiler
bfpy
Python to Brainfuck transpiler
Stars: ✭ 39 (+105.26%)
Mutual labels:  brainfuck
rot13
This is a collection of ROT13 encoding programms written in different languages. Just for fun.
Stars: ✭ 24 (+26.32%)
Mutual labels:  brainfuck
brainfuck
Brainfuck interpreter companion to the brain programming language
Stars: ✭ 32 (+68.42%)
Mutual labels:  brainfuck
bfloader
🧠 Brainfuck IDE and interpreter in 512 bytes. (boot sector)
Stars: ✭ 41 (+115.79%)
Mutual labels:  brainfuck
bf256
Brainfuck compiler under 256 bytes in size.
Stars: ✭ 21 (+10.53%)
Mutual labels:  brainfuck
ojisan f-ck
おじさん風文章を解釈して動く Brainfuck interpreter
Stars: ✭ 20 (+5.26%)
Mutual labels:  brainfuck
brainfuck2wasm
A brainfuck-to-WebAssembly compiler
Stars: ✭ 36 (+89.47%)
Mutual labels:  brainfuck
BrainfuckIDE
A Brainfuck IDE/debugger designed to be intuitive, featureful and visually appealing
Stars: ✭ 77 (+305.26%)
Mutual labels:  brainfuck
rathilang
A small gift for someone who did big things (Python Package)
Stars: ✭ 14 (-26.32%)
Mutual labels:  brainfuck
Klipse
Klipse is a JavaScript plugin for embedding interactive code snippets in tech blogs.
Stars: ✭ 2,841 (+14852.63%)
Mutual labels:  brainfuck
emuStudio
Universal emulation platform and framework.
Stars: ✭ 28 (+47.37%)
Mutual labels:  brainfuck
esoo
Like the Programming Languages Zoo but with esoteric languages.
Stars: ✭ 18 (-5.26%)
Mutual labels:  brainfuck
vbf
A brainfuck interpreter/compiler written in V.
Stars: ✭ 17 (-10.53%)
Mutual labels:  brainfuck
brainhug
A simple brainfuck translator crate in Rust
Stars: ✭ 14 (-26.32%)
Mutual labels:  brainfuck
brainfuck
A simple brainfuck interpreter in Rust.
Stars: ✭ 18 (-5.26%)
Mutual labels:  brainfuck

Faster Brainfuck Programming FBP

Version 0.3

This project aims to make programming the brainfuck language easier, faster and more powerful .. everything is made out of functions making it very easy to port to other languages

I made this using c++ but i used things that exist in every singe language

There are only two important files (FBP.cpp and Functions.h) .. you write your programs in FBP.cpp inside main, and when you finish you compile it and the brainfuck code will be outputed.

The sources i used

Brainfuck Algorithms

Brainfuck Visualizer no longer online :(
Brainfuck IDE

What's new!!

  • 0.3:

    • Added looping :) finally had some time to work on this project
  • 0.2:

    • Improved the printS function
    • Added newArray function, along with array datatype
    • Used the new comparison algorithm (by reddit user danielcristofani)
    • Overall improvements made the number of steps to run the main program (in Examples/if_else.cpp) reduce from 68093 to 6533
    • The new COMPARE function creates an array that results in 5 memory leaks (more bugs to fix later)
  • 0.1:

    • Now you can put nested if-statements

How to use

  • You can cmake . then make
  • Or just g++ FBP.cpp

The availale commands are here

Code Description Example
newVariable(); it will make a new variable and return an integer .. it takes an optional input as the first value of the variable otherwise it'll have the value of 0 int a = newVariable(2); makes a new variable called a with the value of 2
addN(location, number); adds the number to the location (location is a variable) .. now supports negative inputs :D .. it'll automaticaly choose between using ++++ repeatedly or using multiplication to reduce the codes addN(a, 10); adds 10 to the value of the variable a
addV(from, to); adds two variables together .. the result will be stored in to keeping the original value of from as it is addV(a, b); adds a and b together and storing the result in b
mulV(from, to); same as addV but multiply
divV(x, y); divide x by y and store the result in x so it's like (x=x/y)
subN(location, number); same as using addN and passing negative number
subV(from, to); subtracts from from to and putts the result in to .. so 2-1 will be subV(1, 2); the 1 will be lost
move(from, to); moves the value from from to to by resetting the value of to to 0 and moving the value of from to to .. and finally the value of from will be 0
copy(from, to); same as move but the value of from is not resetted to 0
getCopy(variable); create and return a new variable holding the same value as variable int newVariable = getCopy(another);
swap(x, y); swaps the variables values with each other
printV(location); prints whatever is inside the location variable int a = newVariable(104); printV(a); this will print the character h
printC(c); takes an ASCII character and prints it .. it can be any character 'd', '%', '5', character must be inside '
printS(string); takes any ASCII character combinations and prints it, printS("Hello World"); string must be inside "
ifTrue(condition); used to create if statements and takes one condition, as discussed next. must be ended with endIf(); ifTrue(SMALLER_OR_EQUAL(a,b));
elseIf(); codes between this and endIf(); will be called when ifTrue condition is false. elseIf();
endIf(); used to end if statements and takes no arguments. endIf();
COMPARE(a,b); Compares the two input variables and returns a cmp_result datatype which has equal greator smaller COMPARE(a,b).greater returns memory location of greater, its 1 if a>b
EQUAL(a, b); used as input to if statements, takes two variables and return true if they are equal EQUAL(a,b); where a and b were made using newVariable()
NOT_EQUAL(a, b); used as input to if statements, takes two variables and return true if they are not equal NOT_EQUAL(a,b); where a and b were made using newVariable()
GREATER(a, b); used as input to if statements, takes two variables and return true if a is greater than b GREATER(a,b); where a and b were made using newVariable()
GREATER_OR_EQUAL(a, b); used as input to if statements, takes two variables and return true if a is greater than or equal to b GREATER_OR_EQUAL(a,b); where a and b were made using newVariable()
SMALLER(a, b); used as input to if statements, takes two variables and return true if a is smaller than b SMALLER(a,b); where a and b were made using newVariable()
SMALLER_OR_EQUAL(a, b); used as input to if statements, takes two variables and return true if a is smaller than or equal to b SMALLER_OR_EQUAL(a,b); where a and b were made using newVariable()
loop(); starts running any code between it and endLoop(); unless lastLoop(); was called which makes that loop the last loop
endLoop(); marks the end of the loop();
lastLoop(); makes the current iteration in the loop the last iteration
resetVariable(location); resets the variable to 0, (without freeing it)
deleteVariable(location); resets the variable to 0, and frees it
movePointer(location); moves the poiter to location variable by using > and <
newArray(numItems); Creates a continuous list of variables and use()es them, then returns an array datatype which has index and size newArray(3) or newArray({1,2,3})
wereToGo(); Returns newArray(1).index
use(location); marks a location on memory as used
free(location); marks a location on memory as free
analyse(); shows error with the number of memory leaks in your code (for the compiler develover :D)

Made by HUNAR OMAR in KURDISTAN

Enjoy brainfucking faster than before :D

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].