The Canadian Encyclopedia — neutral, cited, updated
July 26, 2026Sources cited
Canadianwire.
Canada’s encyclopedia & explainer
HomeTechnology & InternetProgramming LanguagesBrainfuck
Technology & Internet • Programming Languages

Brainfuck

Brainfuck is an esoteric, minimalist programming language created by Urban Müller in 1993.

By Ethan Anderson| Reviewed by Olivia Bennett, Standards & Fact-Checking Lead| Updated July 26, 2026|2 min read| Fact-checked

Brainfuck is an esoteric, minimalist programming language created by Urban Müller in 1993. It is known for its eight commands, extreme simplicity, and Turing-complete design. The language is intended mainly as a programming challenge rather than for practical software development.

History

Brainfuck was created in 1993 by Urban Müller. Sources describe his aim as producing a Turing-complete language with a very small compiler, especially for constrained systems.

Language design

Brainfuck is built around eight commands that manipulate a memory pointer, modify byte-sized cells, handle input/output, and control loops. The language is intentionally minimal and uses a simple tape-based memory model. Its canonical model uses a one-dimensional tape of memory cells initialized to zero. Cell values wrap modulo 256 in the common abstract machine model.

Turing completeness

Despite its tiny instruction set, Brainfuck is Turing-complete. This means it can simulate general computation in theory, although programs are usually long and difficult to read. Turing completeness is a concept that underlies much of Artificial Intelligence.

Reception and use

Brainfuck is considered an esoteric language used mainly for puzzles, experimentation, and amusement. It is not designed for practical everyday software development, unlike applications such as Microsoft Outlook. It is widely described on Wiki as a Turing tarpit and an esolang.

Key facts

  • Brainfuck uses only eight single-character commands.
  • It is fully Turing-complete.
  • Its canonical model uses a one-dimensional tape of memory cells initialized to zero.
  • The language was created by Urban Müller in 1993.

Frequently asked questions

Who created Brainfuck?
Brainfuck was created by Urban Müller in 1993.
How many commands does Brainfuck have?
Brainfuck has eight commands, each represented by a single character.
Is Brainfuck Turing-complete?
Yes. It is widely described as Turing-complete.
What is Brainfuck used for?
It is mainly used as a programming challenge, a teaching example, and an esoteric language for experimentation.
How does Brainfuck store data?
In the common abstract model, it uses a one-dimensional tape of cells, typically byte-sized and initialized to zero.
Is Brainfuck practical for real software?
Generally no. It is intentionally minimal and difficult to write large programs in.

References

  1. Wikipediahttps://en.wikipedia.org/wiki/Brainfuck
    Supports: Creation date, Turing-complete status, Turing tarpit description, and canonical memory model
  2. Muppetlabshttps://www.muppetlabs.com/~breadbox/bf/
    Supports: Urban Müller as creator, compiler origin, eight commands, and 30,000-byte tape description
  3. Grand Valley State Universityhttps://www2.gvsu.edu/miljours/bf.html
    Supports: Eight instructions and lack of conventional programming constructs
  4. Esolangshttps://esolangs.org/wiki/Brainfuck
    Supports: Brainfuck as a famous esoteric programming language
  5. Linus Åkessonhttps://www.linusakesson.net/programming/brainfuck/
    Supports: Brainfuck as a minimalistic programming language