После нахождения на Хабре ряда постов имеющих отношение к Brainfuck'у в том числе его интерпретации у меня возникло какое-то желание написать и свой интерпретатор Brainfuck'а. Но для удовлетворение тех необходимых ощущений, которые нам приносит сам язык нужно это было написать именно на Brainfuck. И у меня это частично получилось. Сразу оговорюсь о том чего нету: этот интерпритатор на данный момент не поддерживает циклы и ввод входных данных (в случае входных данных — нет откуда их считывать, так как на вход подается Brainfuck программа) — если кратко — то не работают комманды "[", "]" и ",".
Показаны сообщения с ярлыком Brainfuck. Показать все сообщения
Показаны сообщения с ярлыком Brainfuck. Показать все сообщения
среда, 9 февраля 2011 г.
суббота, 5 февраля 2011 г.
Переводчик на язык программиста
С добрым утром, хабражители!
Хочу немного дополнить неделю brainfuck до того, как она закончится.
Говорят, что программисты общаются на своем, никому не понятном языке. Что ж, порой именно так и бывает. Поэтому однажды у меня родилась идея сделать сервис, который позволял бы наладить общение между программистами и остальным миром. Или же наоборот — усложнить его: все в ваших руках. В любом случае больше не нужно набирать сообщение в двоичном или brainfuck коде, чтобы признаться в любви девушке — достаточно зайти на сайт и он сделает это за вас! ;)
Итак, предлагаю вашему вниманию небольшой сервис, позволяющий за пару кликов закодировать человеческое сообщение в 11 нечеловеческих!
Добро пожаловать на www.deardeer.ru! Надеюсь, вы без труда найдете ему применение, и заставите ваших знакомых немного поломать голову над вашим посланием! :)
Хороших выходных!
Источник: Хабрахабр - Web-разработка
Оригинальная страница: Переводчик на язык программиста

Говорят, что программисты общаются на своем, никому не понятном языке. Что ж, порой именно так и бывает. Поэтому однажды у меня родилась идея сделать сервис, который позволял бы наладить общение между программистами и остальным миром. Или же наоборот — усложнить его: все в ваших руках. В любом случае больше не нужно набирать сообщение в двоичном или brainfuck коде, чтобы признаться в любви девушке — достаточно зайти на сайт и он сделает это за вас! ;)
Итак, предлагаю вашему вниманию небольшой сервис, позволяющий за пару кликов закодировать человеческое сообщение в 11 нечеловеческих!
Добро пожаловать на www.deardeer.ru! Надеюсь, вы без труда найдете ему применение, и заставите ваших знакомых немного поломать голову над вашим посланием! :)
Хороших выходных!
Источник: Хабрахабр - Web-разработка
Оригинальная страница: Переводчик на язык программиста
пятница, 4 февраля 2011 г.
[Ссылка] Brainfuck на 33 языках
Попробую закрыть неделю интерпретаторов Brainfuck на Хабре и дам ссылку на задание "Execute Brain****" на сайте Rosetta Code. Представлены реализации на (пока что) 33 основных языках, при желании можно добавить свой интерпретатор. По-моему, исчерпывающе :-)
P.S. Ссылка сокращена, потому что символ * в ссылке парсер не одобрил.
Ссылка: http://habrahabr.ru/linker/go/113173/
Источник: Хабрахабр - Ненормальное программирование
Оригинальная страница: [Ссылка] Brainfuck на 33 языках
P.S. Ссылка сокращена, потому что символ * в ссылке парсер не одобрил.
Ссылка: http://habrahabr.ru/linker/go/113173/
Источник: Хабрахабр - Ненормальное программирование
Оригинальная страница: [Ссылка] Brainfuck на 33 языках
Параллелим Brainfuck
Не будем терять темпа. Поскольку неделя еще не закончилась, еще есть время для очередного топика про Brainfuck. Идея меня захватила, но реализаций интерпретаторов было уже такое количество, что захотелось какой-то изюминки. Поэтому в качестве цели эксперимента я выбрал Brainfork — многопоточную версию Brainfuck-а. А в качестве средства — Erlang, который прекрасно подходит для реализации параллельных процессов. Тем, кому эта тема до сих пор не осточертела, предлагаю заглянуть под кат.
среда, 2 февраля 2011 г.
Интерпретатор Brainfuck на Bash
В последнее время популярность эзотерического языка Brainfuck набирает обороты. Количество приложений, написанных на Brainfuck увеличивается не в арифметической, а даже в геометрической прогрессии. Очень похожая ситуация с Android.
Сегодня я решил запустить свой первый хелловорлд на этом языке. Я счастливый пользователь NetBSD на тостере, и у меня не получилось настроить интернет. Поэтому, я не смог воспользоваться уже готовыми решениями для запуска программ на Brainfuck'e.
Выход оставался один — написать интерпретатор самому. Из софта были только Bash и системные утилиты. Поэтому, пришлось писать на нем.
Источник: Хабрахабр - Ненормальное программирование
Оригинальная страница: Интерпретатор Brainfuck на Bash
Сегодня я решил запустить свой первый хелловорлд на этом языке. Я счастливый пользователь 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
воскресенье, 10 октября 2010 г.
Интерпретатор Brainfuck размером 160 байт
Прочитав про IP-стэк twIP, который помещается в размер твита и отвечает на пинги, корейский программист Канг Сеонгхун (Kang Seonghoon) решил создать нечто такое же миниатюрное и при этом работоспособное. И он создал самый маленький интерпретатор Brainfuck на C размером всего 160 байт.
s[99],*r=s,*d,c;main(a,b){char*v=1[d=b];for(;c=*v++%93;)for(b=c&2,b=c%7?a&&(c&17?c&1?(*r+=b-1):(r+=b-1):syscall(4-!b,b,r,1),0):v;b&&c|a**r;v=d)main(!c,&a);d=v;}
Подписаться на:
Сообщения (Atom)