Wessel Frijters

Engine/Tools programmer

Brainf*ck Interpreter

The brainf*ck IDE is an application that can be used to write your own brainf*ck code. The application consists of a few custom windows that work together to create a workflow that is a little easier to write brainf*ck code. You can learn more about the application and brainfuck on this page but in case you want to explore the source code for yourself here is a button that will take you to the GitHub project: 

Brainf*ck IDE

About Brainf*ck

Brainf*ck is a  very minimalistic programming language that consists of only 8 different characters:

CharacterMeaning
>increment the data pointer (to point to the next cell to the right).
<decrement the data pointer (to point to the next cell to the left).
+increment (increase by one) the byte at the data pointer.
decrement (decrease by one) the byte at the data pointer.
.output the byte at the data pointer.
,accept one byte of input, storing its value in the byte at the data pointer.
[if the byte at the data pointer is zero, then instead of moving the instruction pointer forward to the next command, jump it forward to the command after the matching ] command.
]if the byte at the data pointer is nonzero, then instead of moving the instruction pointer forward to the next command, jump it back to the command after the matching [ command.

In many languages, you have something that’s called a data pointer. For simplicity try to visualize your computer’s memory as a long line. The line is divided into cells. Think of the pointer as an arrow that ‘points’ to a cell in memory.

The language can be used to write any sort of program however, it’s not very practical. The language mainly serves as a fun challenge for programmers.

Learn how to write your first brainf*ck program

In this section, I will show you how to write your first “Hello World!” application in brainfuck. To print any letter on the screen you need its ASCII value which can be found easily on the internet today. Or you can use my Ascii to Bytes converter included in the program.

Custom Winforms

The program consists of a few custom flat UI windows.

In order for a windows application to move you need a toolbar on top of your window.  Because I don’t think the default toolbar works with this design, I researched how to move the window without needing a default toolbar and stumbled upon this site. After that, I decided to use that code to make the windows draggable.

I plan to implement more features to these windows like animations and movable sub-menus.

Useful Tools

This brainf*ck IDE comes with a few useful tools like the: Memory View.  This window shows you the output of your application after execution. Making it easier to debug your application if weird results occur.

The IDE also comes with a very useful tool to convert your text in Ascii to Bytes. This can make it easier for you to write texts with brainf*ck.

Ascii to Byte Converter

Virtual Machine

Because we don’t want to disturb any of the operating system’s memory we created a very simple virtual machine that is used as a virtual computer. The computer itself has commands and its own memory.

Show Source

View the code.

Click the button below to explore the source code.