Комментарии 51
Насчет циклов: pastebin.com/f6cca4886
Ну и в целом, имело наверное смысл изучить прежде шесть имеющихся интерпретаторов.
Ну и в целом, имело наверное смысл изучить прежде шесть имеющихся интерпретаторов.
Спасибо за информацию. Сейчас пересмотрю существующие реализации, и, думаю найду для себя полезные мысли для реализации циклов. Я, по-видимому, плохо искал информацию, так как не нашел существующих интерпретаторов Brainfuck на Brainfuck.
esolangs.org/wiki/DBFI
«possibly the shortest self-interpreter amongst all imperative languagеs»...
Мозг взорван, чего, собственно, следовало ожидать…
«possibly the shortest self-interpreter amongst all imperative languagеs»...
Мозг взорван, чего, собственно, следовало ожидать…
Please stop fuck my brains on brainfuck!!! STOP!!! I can`t get more!!!
Что вы там в песочнице курите?
Во делать нефиг людям.
Это замечательный пост, он обязательно должен был появится, я его очень ждал!
Я ждал этого. Цепочка замкнулась. Всем спасибо, все свободны.
Следующая статья будет «Интерпретатор Brainfuck на Brainfuck на Brainfuck».
Думаю, такими темпами, следующий релиз PHP будет на брейнфаке вместо Си. о_0
путь к сердцу хабра лежит через брейнфак
Как пишут в таких случаях зарубежные журналисты, so meta it hurts.
свой бордель, с блэкджэком и шлюхами
НЛО прилетело и опубликовало эту надпись здесь
Это потому что этот интерпретатор (swapped.cc/bf/) не умеет ходить в минусовые ячейки. Например, данный код на нем не исполняется <+++.
НЛО прилетело и опубликовало эту надпись здесь
Я, честно говоря, спецификации не читал, и никаких других моментов связанных именно с тем, что можно или не можно ходить в минус, не находил. Я просто руководствовался той логикой, что если можно ходить по ячейках, то какая разница в какую сторону.
НЛО прилетело и опубликовало эту надпись здесь
Вы сможете выложить Вашу версию интерпретатора куда-то в общий доступ?
Я тестировал свой код на brainfuck.tk, Brainfuck Developer, Linux'овом bf — на этих интерпретаторах он работает.
И кстати, если на ячейке из значением ноль выполнить команду декремента, то каким будет новое значение ячейки?
Я тестировал свой код на brainfuck.tk, Brainfuck Developer, Linux'овом bf — на этих интерпретаторах он работает.
И кстати, если на ячейке из значением ноль выполнить команду декремента, то каким будет новое значение ячейки?
НЛО прилетело и опубликовало эту надпись здесь
Уже работает! Убрал одно лишнее условие… изменения (pastebin.com/e8juzAFW)
НЛО прилетело и опубликовало эту надпись здесь
Условие теперь также исполняется, только теперь в другом месте. Проблема была в том, что код:
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).
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).
НЛО прилетело и опубликовало эту надпись здесь
А нет. Я ошибся. Интерпретатор от swapped.cc не работает по каким-то другим причинам, неизвестным мне на данный момент.
наконец-таки написали на хабре статью об интепретации brainfuck на brainfuck, может теперь не будет статей типа «Интерпретация brainfuck на XXX» :)
Не знаю как другим в мне статьи про brainfuck немного поднадоели.
И что, Вы думаете написали интерпретатор? Если у Вас нет циклов, то в этом нет смысла — ведь именно они придают полноту и красоту языку, они — основная сложность. Более того — у Вас нет ввода. То есть то, что Вы сделали, очевидно и бессмысленно, в этом нет особой сложности. Не вижу смысла выкладывать такие недоделанные работы.
А как Вы думаете — какая должна быть практическая польза из интерпретатора Brainfuck'а на Brainfuck? Он может быстрее работать, или использовать меньше памяти (хотя этот вариант возможно еще и допустимый), чем его аналоги написанные на других языках программирования? Я этот код писал ради спортивного интереса, и не больше. Почему я это выложил? Мне показалось интересным поделиться с данным сообществом этой информацией. Возможно некоторым эта информация показалась интересной, другим нет. И поэтому, если есть информация, которая никому не навредит и окажеться полезной для других, то почему бы этой информацией не поделиться?
Ну, Вы меня простите, это я так, «разгорячился».
В общем, интересно было бы посмотреть на Вашу реализацию циклов и ввода.
А ещё можно реализовать некоторый расширенный (к примеру, процедурный) bf на bf.
В общем, интересно было бы посмотреть на Вашу реализацию циклов и ввода.
А ещё можно реализовать некоторый расширенный (к примеру, процедурный) bf на bf.
Господа. Не подскажете, как правильно кириллицу вывести, если кодировка на странице UTF-8?
Выводить строку, закодированную в UTF8, побайтно.
Вот пример:
Проверял работоспособность на brainfuck.tk/
Вот пример:
# Letter «У» byte 1
>++++++++++[>++++++++++[<<++>>-]<-]<++++++++.
# Letter «У» byte 2
>+++++++++[<----->-]<.
# Letter «р» byte 1
>+++++++++[<+++++>-]<+.
# Letter «р» byte 2
>+++++++++[<--------->-]<.
# Letter «а» byte 1
>++++++++++[<++++++++>-]<.
# Letter «а» byte 2
>++++++[<----->-]<--.
# Symbol "!"
>++++++++++++[<------------>-]<+.
# End.
Проверял работоспособность на brainfuck.tk/
НЛО прилетело и опубликовало эту надпись здесь
Интересно, что будет дальше, неделя LOLCODE? =)
Теперь бы еще интерпретатор Brainfuck на Brainfart написать…
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Интерпретатор Brainfuck на Brainfuck