К началу3 Основы языка: 8 команд Brainfuck
Язык состоит всего из восьми перечисленных ниже команд.
> Сдвинуть указатель на одну ячейку вправо
< Сдвинуть указатель на одну ячейку влево
+ Увеличить на единицу значение текущей ячейки
- Уменьшить на единицу значение текущей ячейки
. Отобразить ASCII-символ, соответствующий значению текущей ячейки на экран
, Запросить ввод одного символа и сохранить его в текущей ячейке
[ Начало цикла while. Пока текущая ячейка не равна нулю, выполнять команды между скобками
] Окончание цикла. Если текущая ячейка не равна нулю, вернуться к началу цикла
3.1 Программирование на Brainfuck
Программа на Brainfuck может представлять собой последовательность приведеных команд, перемешанных с любыми другими символами, игнорируемыми при компиляции. За исключением цикла [ ], команды выполняются последовательно, друг за другом. После выполнения последней команды программа завершается.
3.2 Упражнения
1. Приведите примеры команд, аналогичных приведенным, в знакомых вам языках
2. Изучите работу цикла [ ] применительно к различным значениям текущей ячейки памяти
4 Модель языка Brainfuck
Абстрактная машина, исполняющая Brainfuck содержит:
программу с указателем текущей инструкции
одномерный массив из 30000 однобайтных ячеек, заполненный нулями
перемещаемый указатель данных, изначально находящийся в крайней левой ячейке
потоки ввода-вывода, обычно соединенные с клавиатурой и монитором, и использующие кодировку ASCII.
В отличие от других небольших языков, память с данными отделена от памяти инструкций, и содержимое ячеек с данными не может оказать влияние на ячейки программы.
Далее -
Первые программы на Brainfuck