A downloadable tool

ShadeBreak is a programming language based off of BrainF*ck. The core principle of BrainF*ck is that it only has these functions:
- + Increase current cell value by one

- + Decrease current cell value by one

- > Move right one cell

- < Move left one cell

- [ Start of a loop, only starts if current cell isn't 0

- ] End of loop. Only ends if selected cell when reaching end of loop is 0, otherwise goes back to the start of the loop.

- . Print current cell value as an ASCII character.

- , Get a character and store it's ASCII value in the current cell.

That's it. 8 functions. ShadeBreak, which takes this language (Which was already Turing-Complete) and makes it a (basically) functional language. An example of a functional language is C, which, funnily enough, is what the compiler both compiles down to and is written in.

ShadeBreak, as it compiles down to C, requires GCC to be on your Operating System Path so you can use it from your command line without being in the EXE directory. If you plan to use the included IDE, also put the compiler's directory on your path. After that, you're good.

If GCC is not on your path, or you would perfer to use a different compiler, when using the compilation command, compile it with the -t tag after the name and file. This will only compile it down to C. If you use -g, the array will be uninitialized (and so it will randomly put stuff from memory into it). This is not the correct way to use randomness. To do that, use the % command.

With ShadeBreak, you get multiple new characters which make it a more useful language (While still being fun to program in!):

  • (): Inverted Loop. This is the opposite of the [] loop, where the loop must always be 0 (Known as a "While-Equals-Zero" loop, which is another name for this). If you run this at the beginning of a normal program (that isn't compiled with -g), you can set every value to one exact value (as all values default to start at 0 if you don't use -g).
  • *: One line comment. Everything on this line is ignored.
  • ^: Multiline comment. Everything from the first ^ to the next ^ is ignored.
  • {}: If. Use the + operator to specify the condition value. Use +,-,<,>,and % to specify what the condition checks (+ for equals, - for doesn't equal, < for less than, > for greater than, % for checking if the current cell is equal to the condition value). | ends condition, rest is considered code until the }.
  • %: Randomize. This randomly puts a number in the cell between 1 and 255.
  • =: Breakpoint. This will immediately halt execution and print out "Hit Breakpoint".


Install Instructions:

Download the .zip and unpack it. For this, I would recommend 7z (which is what I use). After that, if you don't have GCC, you can get it for your operating system here. (Make sure that when you go to downloads, it has "C" listed as one of the programming languages. A good one would be WinLibs, if you're on windows, as it includes nearly everything)

Once MinGW is installed, go to where it was unpacked and go into the bin folder. Copy this path and put it on your path.

After, unpack the zip you got from here. Go to where it's unpacked and put that on your OS path too. After that, you're done.


IDE made in C++ with wxWidgets, compiled with GNU G++.

Compiler made in C with GNU GCC.