Введение

Эзотерический, минималистичный язык программирования

Brainfuck — это эзотерический язык программирования, созданный в 1993 году Урбаном Мюллером. Язык примечателен своей крайней простотой: он состоит всего из восьми простых команд, указателя данных и указателя инструкций. Brainfuck является примером так называемого "Тьюринг-болота": на нём можно написать любую программу, но это непрактично, поскольку Brainfuck предоставляет настолько мало абстракций, что программы получаются очень длинными или сложными. Хотя Brainfuck является полным по Тьюрингу, он не предназначен для практического использования, а для того, чтобы бросить вызов и развлечь программистов. Brainfuck требует разбиения команд на микроскопические шаги. Название языка отсылает к сленговому выражению "brainfuck", обозначающему вещи настолько сложные или необычные, что они выходят за пределы понимания, поскольку он не предназначался для разработки реального программного обеспечения, а для проверки границ компьютерного программирования. Из-за нецензурного названия языка часто используются его заменители, такие как brainfsck, branflakes, brainoof, brainfrick, BrainF и BF.

История

Мюллер разработал Brainfuck с целью создания максимально компактного компилятора, вдохновлённого 1024-байтным компилятором для языка программирования FALSE. Изначальный компилятор Мюллера был реализован на машинном коде и компилировался в бинарный файл размером 296 байт. Он опубликовал первый компилятор Brainfuck на Aminet в 1993 году. Программа сопровождалась файлом "Readme", в котором кратко описывался язык и читателям бросался вызов: "Кто сможет написать на нём что-нибудь полезное? :)". Мюллер также включил интерпретатор и несколько примеров. Вторая версия компилятора занимала всего 240 байт.

П"

За исключением двух команд ввода-вывода, Brainfuck является незначительной вариацией формального языка программирования P′′, созданного Коррадо Бёмом в 1964 году, который явно основан на машине Тьюринга. Фактически, используя шесть символов, эквивалентных соответствующим командам Brainfuck +, , <, >, [, ], Бём предоставил явную программу для каждой из базовых функций, которые вместе позволяют вычислить любую вычислимую функцию. Таким образом, первые программы, подобные "Brainfuck", появились в статье Бёма 1964 года – и их было достаточно для доказательства полноты по Тьюрингу.