Найти тему
Люди и код

Brainfuck: самый маленький язык программирования, который выносит мозг

Оглавление

Когда название оправдано на сто процентов.

В прошлой статье мы рассказали про эзотерический язык программирования False, который в 1993-м запустил моду на странный и не самый практичный кодинг. Идея оказалась заразительной: в том же году Урбан Мюллер вдохновился и написал язык с самым маленьким компилятором в мире — 256 байт. Это был Brainfuck — «мозготрах», если переводить почти дословно, но цензурно.

Пиши код и страдай

Вся суть языка — в управлении памятью. Программисту доступен 30-тысячный массив однобайтовых блоков, в котором можно менять значения ячеек, увеличивать указатель памяти, создавать циклы и так далее — то есть использовать восемь односимвольных операторов. По структуре он похож на машину Тьюринга, и это создаёт определённые трудности: здесь нет привычной арифметики, промежуточной памяти и условных операторов.

Например, чтобы написать программу “Hello, World!”, потребуется ввести целых 389 команд! Смотреть на такой код больно — поэтому Brainfuck часто называют развлечением для мазохистов: программа нечитаема, а неудобный и непродуманный (на самом деле вполне себе продуманный) синтаксис превращает кодинг в пытку.

Код “Hello, World!” в Brainfuck
Код “Hello, World!” в Brainfuck

Использовать в коммерческих целях Brainfuck невозможно, но как тренажёр — вполне реально. Например, тот же “Hello, World” можно оптимизировать до 113 команд и сделать чуть изящней. Но он всё равно останется непонятным для большинства людей :-)

Оптимизированный вариант кода “Hello, World” на Brainfuck не делает его проще. Источник: «Пикабу»
Оптимизированный вариант кода “Hello, World” на Brainfuck не делает его проще. Источник: «Пикабу»

Brainfuck как культ

Brainfuck стал культовым языком: энтузиасты не только устраивают по нему чемпионаты, но и… делают под него компьютеры. Так, после нескольких лет разработки в 2019 году Артём Кашканов показал BrainfuckPC — компьютер с процессором из 578 реле, работающих на тактовой частоте 20–45 Гц под управлением Brainfuck++.

Артём Кашканов и BrainfuckPC. Источник: «Хабр»
Артём Кашканов и BrainfuckPC. Источник: «Хабр»

К сожалению, сам создатель языка — Урбан Миллер — перестал заниматься эзотерическим программированием и сейчас работает в швейцарской поисковой системе. Но его детище продолжает жить — Brainfuck вдохновил других программистов на создание подобных языков. Например, в мемном “Ook!” все команды — это вариации слова «хорошо», а в COW — мычания коровы. Но это далеко не все интересные эзотерические языки — в следующих статьях расскажем про другие. Подписывайтесь, чтобы не пропустить!

***

Чтобы не пропустить другие материалы о программировании, истории IT и искусственном интеллекте, подпишитесь на канал. Ставьте лайки, чтобы видеть больше таких статей у себя в ленте. Если вы хотите, чтобы мы написали о каком-то факте или технологии, предложите свою тему в комментариях к этой или другим статьям.

#люди_и_код #технологии #it #прграммирование #история it #языки программирования