Logo for Brainfuck

Upvote Brainfuck


A simple bot that can execute Brainfuck code

Back to Brainfuck

This Brainfuck Bot allows you to easily execute any brainfuck code

There isn’t much else to it. It does its job and it does it well.
It is also faster than some other implementations, due to it being written in C#.

Currently you can:

  • Execute any Brainfuck code with the bf!run command (anything that is not part of the syntax will be regarded as a comment)
  • Have complex executions with a run-time of up to 10 seconds
  • Enter ASCII input when needed

A few things to remember:

  • The input is taken as one string
  • If the input string runs out, the bot will interpret input as NULL characters

Things I might add in the future:

  • Decimal/Hexadecimal input
  • Runtime input (asking for a character each time an input operator is encountered)
  • Storing, sharing and executing code snippets
  • A catalogue of code snippets to use when executing code

I would like to thank thomm.o#8637 for letting me use his idea for the bot

In case you are not familiar with Brainfuck, I’ll leave you with this info page:

Background

Brainfuck is an esoteric programming language created in 1993 by Urban Müller.
The language contains only eight simple commands and an instruction pointer.
While it is fully Turing - complete, it is not intended for practical use, but to challenge and amuse programmers.

Diagram

  | 0 | 0 | 0 | 0 | 0 || 0 || 0 | 0 |
  --------------------||---||--------
  tape ---^     ^        ^
    cell --------        |
      head(pointer) -----

Instructions

  • > - Move the pointer right
  • < - Move the pointer left
  • + - Increment the current cell
  • - - Decrement the current cell
  • . - Output the value of the current cell
  • , - Replace the value of the current cell with input
  • [ - Jump to the matching ] instruction if the value of the current cell is zero
  • ] - Jump to the matching [ instruction if the value of the current cell is not zero

Memory Layout

The brainfuck tape is made of an infinite(in this case limited to 30,000) collection of 1 byte cells.
Each cell represents a single, unsigned 8 - bit number.
Cells start initialized at zero.

Since the numbers are unsigned, there is no need for any complex integer implementation.
If the upper limit of the cell is reached, it wraps back to zero.
If zero is decremented, it must wrap back to 11111111.

Check out the home page for the full Discord Bot List.