極端な小型化と難解な言語仕様で有名なプログラミング言語の一つ。
Amiga OS 2.0用に、小型のコンパイラを作ることを目的として創案された。
わずか8つの機能しか持たないが、最低限必要な機能は用意されており、にもかかわらず彼の作ったコンパイラは僅か240バイト(キロバイトやメガバイトではない)しかなかった。
この刺激的な言語はプログラミング言語の世界に少なからぬ影響をもたらし、Brainfuckの派生言語や、似たような趣旨の意味不明言語を多数生み出す原動力にもなったようである。
なお、名前にfour letters wordを含み、上品でないため、これを「Brainf*ck」、あるいは略して「BF」と書くこともある。
Brainfuckプログラムには、「ポインタ」と呼ばれる暗黙のバイトポインタがある。
あらかじめゼロで埋められた充分な大きさ(30,000バイト)の配列が用意されており、その一つをポインタが指し示す。ポインタの初期値はこの配列の先頭で、かつポインタは配列の範囲内を自由に移動しながら、指し示す値を増減させることができる。
この言語の実用性自体は皆無である(作者自体、もともと実用性を求めてはいないだろう)が、これでもチューリングコンプリートな言語であり、理論上は他の一般的なプログラミング言語と同等の能力を持っている。
Brainfuckプログラミング言語には8つの機能しかないが、それぞれが単独の文字で表現される。
これら文字は可読性を理由に選択された。また、1文字であるのは字句解析を略し、コンパイラを軽量化するためである。
文字は、上の8種類である必然性はなく、実際には何でも良い。
このため、他の文字に置き換え、より難解な言語仕様にしたプログラミング言語も作られている。