Pull to refresh

Comments 51

Спасибо за информацию. Сейчас пересмотрю существующие реализации, и, думаю найду для себя полезные мысли для реализации циклов. Я, по-видимому, плохо искал информацию, так как не нашел существующих интерпретаторов Brainfuck на Brainfuck.
esolangs.org/wiki/DBFI
«possibly the shortest self-interpreter amongst all imperative languagеs»...
Мозг взорван, чего, собственно, следовало ожидать…
Мда… Сказать что мне пока что к этому далеко, это ничего не сказать… У меня без поддержки циклов размер — 1061 байт, а у них полнофункциональный — 423 байта (ну это если убрать
ASCII decoding, comment handling, and avoiding undefined behaviour
, чего у меня нету)
Please stop fuck my brains on brainfuck!!! STOP!!! I can`t get more!!!
It only flowers. Your death is close: (
Да нет. Просто время от времени возникает желание удовлетворить те потребности, на которые намекает название языка.
Это замечательный пост, он обязательно должен был появится, я его очень ждал!
Спасибо за отзыв!
Я ждал этого. Цепочка замкнулась. Всем спасибо, все свободны.
Yo dawg so i heard you like Brainfuck so we put Brainfuck in your Brainfuck so you can interpret Brainfuck while you interpret Brainfuck

Простите.
Следующая статья будет «Интерпретатор Brainfuck на Brainfuck на Brainfuck».
меня бы устроил и «Рейтрейсер на Brainfuck» на самом деле…
Думаю, такими темпами, следующий релиз PHP будет на брейнфаке вместо Си. о_0
путь к сердцу хабра лежит через брейнфак
Как пишут в таких случаях зарубежные журналисты, so meta it hurts.
свой бордель, с блэкджэком и шлюхами
UFO just landed and posted this here
Это потому что этот интерпретатор (swapped.cc/bf/) не умеет ходить в минусовые ячейки. Например, данный код на нем не исполняется <+++.
UFO just landed and posted this here
Я, честно говоря, спецификации не читал, и никаких других моментов связанных именно с тем, что можно или не можно ходить в минус, не находил. Я просто руководствовался той логикой, что если можно ходить по ячейках, то какая разница в какую сторону.
UFO just landed and posted this here
Вы сможете выложить Вашу версию интерпретатора куда-то в общий доступ?
Я тестировал свой код на brainfuck.tk, Brainfuck Developer, Linux'овом bf — на этих интерпретаторах он работает.
И кстати, если на ячейке из значением ноль выполнить команду декремента, то каким будет новое значение ячейки?
UFO just landed and posted this here
UFO just landed and posted this here
Условие теперь также исполняется, только теперь в другом месте. Проблема была в том, что код:
m_stack.pop();
должен в любом случае исполнятся, независимо от условия:
m_field[pos_in_field] != 0

const уже был в объявлении. Убрал, потому что были ошибки компиляции "invalid conversion from ‘const char*’ to ‘char*’". Компилятор — gcc version 4.4.4 (Gentoo Hardened 4.4.4-r2 p1.2, pie-0.4.5).
UFO just landed and posted this here
UFO just landed and posted this here
А нет. Я ошибся. Интерпретатор от swapped.cc не работает по каким-то другим причинам, неизвестным мне на данный момент.
наконец-таки написали на хабре статью об интепретации brainfuck на brainfuck, может теперь не будет статей типа «Интерпретация brainfuck на XXX» :)
Не знаю как другим в мне статьи про brainfuck немного поднадоели.
я б даже сказал подзаебали
Что вам мешает не читать их?
И что, Вы думаете написали интерпретатор? Если у Вас нет циклов, то в этом нет смысла — ведь именно они придают полноту и красоту языку, они — основная сложность. Более того — у Вас нет ввода. То есть то, что Вы сделали, очевидно и бессмысленно, в этом нет особой сложности. Не вижу смысла выкладывать такие недоделанные работы.
А как Вы думаете — какая должна быть практическая польза из интерпретатора Brainfuck'а на Brainfuck? Он может быстрее работать, или использовать меньше памяти (хотя этот вариант возможно еще и допустимый), чем его аналоги написанные на других языках программирования? Я этот код писал ради спортивного интереса, и не больше. Почему я это выложил? Мне показалось интересным поделиться с данным сообществом этой информацией. Возможно некоторым эта информация показалась интересной, другим нет. И поэтому, если есть информация, которая никому не навредит и окажеться полезной для других, то почему бы этой информацией не поделиться?
Ну, Вы меня простите, это я так, «разгорячился».

В общем, интересно было бы посмотреть на Вашу реализацию циклов и ввода.
А ещё можно реализовать некоторый расширенный (к примеру, процедурный) bf на bf.
Спасибо за понимание.
Интересная мысль с реализацией процедурного bf, и как я предполагаю на данный момент, идея реализации будет чем-то близка к реализации циклов. Я доработаю данный код до полной реализации BF (или, возможно, Pbrain), и, если конечно Вы не против, сообщу Вам об этом.
А ещё можно реализовать такую вещь, как восклицательные знаки (типа константы, подающиеся на чтение).

Более того, у меня есть проект, переводящий высокоуровневый язык в bf, это очень сильно поможет при реализации.

Удачи Вам!
Господа. Не подскажете, как правильно кириллицу вывести, если кодировка на странице UTF-8?
Выводить строку, закодированную в UTF8, побайтно.
Вот пример:
# Letter «У» byte 1
>++++++++++[>++++++++++[<<++>>-]<-]<++++++++.
# Letter «У» byte 2
>+++++++++[<----->-]<.
# Letter «р» byte 1
>+++++++++[<+++++>-]<+.
# Letter «р» byte 2
>+++++++++[<--------->-]<.
# Letter «а» byte 1
>++++++++++[<++++++++>-]<.
# Letter «а» byte 2
>++++++[<----->-]<--.
# Symbol "!"
>++++++++++++[<------------>-]<+.
# End.


Проверял работоспособность на brainfuck.tk/
UFO just landed and posted this here
Интересно, что будет дальше, неделя LOLCODE? =)
Теперь бы еще интерпретатор Brainfuck на Brainfart написать…
Не очень Вас понял. Что значит Brainfart в данном контексте?
Sign up to leave a comment.

Articles