Язык программирования Brainfuck научили работать с файлами

Разработчик Кристоф Хьюгон (Christophe Hugon) обновил ЯП Brainfuck и добавил в него функции чтения/записи для работы с файлами. Об этом он написал на своей странице в Facebook. Автор использовал Brainfuck для реализации проекта TapTempo — своеобразного метронома для командной строки, который реализуют на множестве ЯП.

В чем особенность улучшения?

Энтузиаст назвал обновленную версию языка Advanced Brainfuck (ABrainfuck). Теперь этот ЯП может производить чтение и запись в файл в Unix-подобных системах без дополнительных настроек и ухищрений. С помощью новой функции можно, например, получить случайное число из dev/random или текущее время из /proc/driver/rtc.

Существующие операторы остались практически без изменений: вся разница кроется в работе . и ,.

Новый оператор ~ открывает файл, адрес которого соответствует строке, начинающейся на текущей позиции указателя памяти и заканчивающейся \0. После чего запускается «режим файла», в котором . копирует информацию из файла в память, а , — из памяти в файл. Для перехода в «режим памяти» необходимо повторно вызвать оператор ~. В этом режиме функции операторов меняются местами.

После каждой операции чтения/записи в «режиме файла» указатель записи смещается на 1 бит вправо, в «режиме записи» то же самое делает указатель файла.

Автор предлагает ознакомиться с его интерпретацией TapTempo на GitHub, а также использовать ABrainfuck для собственных творений.

Напомним, что Brainfuck относится к так называемым эзотерическим языкам — они создаются ради исследования возможностей ЯП или, зачастую, ради шутки. Подробнее о различных парадигмах программирования можно прочитать в нашем материале.

Источник: страница Кристофа Хьюгона в Facebook