This commit is contained in:
Miloslav Ciz 2025-04-03 21:49:43 +02:00
parent 490ffab10e
commit ee83d8a6b6
38 changed files with 2053 additions and 2030 deletions

View file

@ -1,6 +1,6 @@
# Brainfuck
Brainfuck is an extremely simple, [minimalist](minimalism.md) untyped [esoteric programming language](esolang.md); simple by its specification (consisting only of 8 commands) but very hard to program in (it is so called [Turing tarpit](turing_tarpit.md)). It works similarly to a pure [Turing machine](turing_machine.md). In a way it is kind of [beautiful](beauty.md) by its [simplicity](minimalism.md), it is very easy to write your own brainfuck [interpreter](interpreter.md) (or [compiler](compiler.md)) -- in fact the Brainfuck author's goal was to make a language for which the smallest compiler could be made.
Brainfuck is an extremely [simple](kiss.md), [minimalist](minimalism.md) [untyped](typing.md) [esoteric programming language](esolang.md); plain in specification (consisting only of 8 commands) but difficult to [program](programming.md) in (it is so called [Turing tarpit](turing_tarpit.md)). It works similarly to a pure [Turing machine](turing_machine.md). In a way it is [beautiful](beauty.md) by its [simplicity](minimalism.md), writing brainfuck [interpreter](interpreter.md) (or even a [compiler](compiler.md)) is almost trivial -- in fact the Brainfuck author's goal was to construct a language for which the smallest compiler could be made.
There exist **[self-hosted](self_hosting.md) Brainfuck interpreters and compilers** (i.e. themselves written in Brainfuck) which is pretty fucked up. The smallest one is probably the one called [dbfi](dbfi.md) which has only slightly above 400 characters, that's incredible!!! (Esolang wiki states that it's one of the smallest self interpreters among imperative languages). Of course, **Brainfuck [quines](quine.md)** (programs printing their own source code) also exist, but it's not easy to make them -- one example found on the web was a little over 2100 characters long.