]]> ]]>

Pi

Диалект языка программирования Brainfuck

Pi — диалект языка Brainfuck, который записывает команды языка в число Пи в виде ошибочных цифр в случайных разрядах. Механизм записи работает следующим образом: для каждой следующей команды выбирается разряд, в который она будет записана (правее последней использованной позиции). Берется таблица соответствия команд и цифр

<   >   +   —   .   ,   [   ]
0   1   2   3   4   5   6   7   8

И строка команд сдвигается на одну вправо, начиная с команды над цифрой, которая находится в выбранном разряде в правильном числе Пи. Например, если выбран второй разряд после десятичной точки, правильная цифра в нем — 4, и таблица соответствия принимает следующий вид:

<   >   +   —       .   ,   [   ]
0   1   2   3   4   5   6   7   8

Теперь по нужной команде программы на Brainfuck выбираем соответствующую ей цифру и заменяем на нее правильную в выбранном разряде. Результат записи программы — число, похожее на Пи, но местами отличающееся от него.

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

Примеры:

Hello, World!:

Пример для версий Müller's Brainfuck 2.0

Этот пример является переводом на Pi этого примера.

3.141592653589793238462623382272502824197169299275107820904924592337816406386238
99262833482534311206728234808621328230264709314460935058223872535941812844111745
00841022019385311055296426229289549302819244388109726652334471204756422337867231
65221231909345628566933460342610454226248213391607264249148273720587036656315582
17288153092396282225439171532436789559536003133023024882044652108412695192151163
94330573703656595909530921261173839326137921051125420742623799227495273538857227
24892227938133011749109833675362442656243086321294946795024737130702479860343702
77453921711629317375838467480846766440513202056822724526351082178577132275778260
91736271767204684409312229532301462492853110307922896892089235450199501120290219
65862034218129813624774731309964518707241349993993372978039951049734732816036348
59504445345544690330263252250825304468003522193158817101

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам