Руководство по Brainfuck для новичков [1] (15.08.2014)
К началу

1 Введение

Представьте себе одномерную полосу с данными, например, магнитную ленту (классические машины Тьюринга работают с лентой) или компьютерную память. Для обозначения текущей ячейки используется указатель данных (магнитная головка). Каждая такая ячейка хранит один байт (значение от 0 до 255), слово (16 бит) или 24 бита данных. Автор предпочитает называть указатель курсором, однако, я своевольно оставлю его привычное название (прим. пер.)

Brainfuck - это минималистичный язык программирования, работающий с такой “лентой” в памяти, и состоящий лишь из восьми операндов. Несмотря на это он является Тьюринг-полным, что теоретически позволяет производить любые вычисления как, например, в языках Basic или C. Автор составил данное руководство из найденных им материалов по Brainfuck. Большинство текстов и кода позаимствовано у разных людей с указанием источников.

1.1.1 Авторские права

При цитировании были сохранены лицензии на распространение использованных текстов. Данный документ опубликован под лицензией GFDL.

2 Краткая история Brainfuck[wikipedia]

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

Создавая Brainfuck в 1993 году Урбан Мюллер стремился разработать язык с компилятором как можно меньшего размера, вдохновившись таковым у FALSE - тот умещался в 1024 байта. На данный момент существуют компиляторы Brainfuck размером менее 200 байт.

Далее: Основы языка: 8 команд Brainfuck
Brainfuck
comments powered by Disqus
JavaScript (13)
PHP (11)
Brainfuck (8)
adm (8)
Joomla (4)
Canvas (3)
answers (2)
API (2)
CMS (2)
Modx (2)
jQuery (1)
Ajax (1)
SQL (1)
Shell (1)
batch (1)
10-6