Как стать автором
Обновить

Комментарии 35

Темы с очередными интерпретаторами Brainfuck уже выебали мозг больше, чем сам Brainfuck
НЛО прилетело и опубликовало эту надпись здесь
Напишите уже ктонить интерпретатор C# на brainfuck, а не наоборот *irony*
Теги code рулят.
Как пропатчить kde2 под freebsd?
Это канал о Брейнфаке, Вам в соседний.
Brainfuck week at Habrahabr has already fucked my brain.
астрологи объявили неделю брейнфака. количест^W ну вы поняли…
Может хватит?
жду брэйнфак на брэйнфаке
/me бурчит
А аккумулятор на текущую операцию?
Я понимаю, что пост получился бы длиннее, но это можно было бы реализовать в сорцах, на которые вы дали ссылку.

BrainF#? Даешь полную интеграцию с CLR! :-)
А в памяти сборку можно запустить, не сохраняя на диск? Этакий JIT бы получился…
Качество кода… ну это просто нечто!

Особенно понравилось MTB_IL.Emit(OpCodes.Stsfld,FDB_2);

Я даже врагу не пожелаю с такими именами дело иметь
Блять, напишите уже компилятор/интерпретатор Brainfuck на Brainfuck и успокойтесь…
НЛО прилетело и опубликовало эту надпись здесь
Вроде бы неделя уже закончилась
Хочу еще увидеть замеры в приросте производительности. Насколько быстрее будет работать скомпилированная программа от интерпритатора. Сколько съест памяти.

Компилятор Brainfuck…

Not this shit again…
Компилятор это интересно. Только не совсем понятно, чем обусловлено ограничение в 30000 байт? Оно же не дос-приложение создает, где сегмент кода ограничен 64Kb… Не знаю, из-за этого ли, но мой любимый тест на скорость выполнения:
>+>+>+>+>++<[>[<+++>-
 >>>>>
 >+>+>+>+>++<[>[<+++>-
   >>>>>
   >+>+>+>+>++<[>[<+++>-
     >>>>>
     >+>+>+>+>++<[>[<+++>-
       >>>>>
       +++[->+++++<]>[-]<
       <<<<<
     ]<<]>[-]
     <<<<<
   ]<<]>[-]
   <<<<<
 ]<<]>[-]
 <<<<<
]<<]>.

Трапнулся:

Можно как-то поправить, чтоб заработало? Интересно таки сравнить скорость откомпилированного теста и интерпретируемого.
И еще пожелание — чтобы имя файла с кодом на брейнфаке передавать в первом параметре, а не ждать ввода вручную. Чтобы запускать так: BrainFuckCompiler.NET.exe <имя файла.bf>
А, еще забыл совсем — при выводе символа не нужно переводить каретку на новую строку. А то из простого Hello World! получается такое:
H
e
l
l
o

w
o
r
l
d
!
А что она делает? Штук 5 brainfuck online interpreters тупо зависали…
Если в кратце — просто гоняет много вложенных друг в друга циклов. В конце работы выводит символ ╩
Да, спасибо, уже проверил. Моя реализация на mercury гоняла его 4мин 42 сек, не знаю, на сколько это хороший/плохой результат )
Ну сравните ради эксперимента с моим JIT (или AOT)-интерпретатором: rghost.ru/4249797
Так, на моей рабочей лошадке AMD 64 3000+ (немного разогнан до 2,2Ghz) этот код выполняется за 2-3 секунды.
Весьма интересно. Надо попробовать в мою программу добавить похожие оптимизации.
Попробуйте, я вот здесь немного подробнее написал habrahabr.ru/blogs/development/113339/ (вдруг не видели)…
уже прочитал, thx )
НЛО прилетело и опубликовало эту надпись здесь
я написал транслятор брейнфака в nasm, скормил ему dbfi:

disk.tom.ru/g48ssfe
usage:
$ nasm -f elf dbfi.asm
$ ld -s -o dbfi dbfi.o
$ ./dbfi 
++++++++++[>+++++++>++++++++++>+++>+\
<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++\
++++++.>.+++.------.--------.>+.>.!
Hello World!
$
НЛО прилетело и опубликовало эту надпись здесь
обращайтесь, если что =)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории