Сегодня я решил запустить свой первый хелловорлд на этом языке. Я счастливый пользователь NetBSD на тостере, и у меня не получилось настроить интернет. Поэтому, я не смог воспользоваться уже готовыми решениями для запуска программ на Brainfuck'e.
Выход оставался один — написать интерпретатор самому. Из софта были только Bash и системные утилиты. Поэтому, пришлось писать на нем.
$ cat bf.sh
#!/bin/bash
C="s[0]=0; p=0;"
while read -n1 c; do case $c in
\+) C="$C s[\$p]=\$((\${s[\$p]}+1));";;
\-) C="$C s[\$p]=\$((\${s[\$p]}-1));";;
\>) C="$C p=\$((\$p+1));";;
\<) C="$C p=\$((\$p-1));";;
\.) C="$C printf \\\\\$(printf '%03o' \${s[\$p]});";;
\,) C="$C read -n1 c; s[\$p]=\`printf '%d' \"'\$c\"\`;";;
\[) C="$C while [[ \${s[\$p]} > 0 ]]; do ";;
\]) C="$C done;";;
esac; done < $1;
eval $C
$ cat hello.b
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++
.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.
------.--------.>+.>.
$ ./bf.sh hello.b
Hello World!
Источник: Хабрахабр - Ненормальное программирование
Оригинальная страница: Интерпретатор Brainfuck на Bash
Комментариев нет:
Отправить комментарий