Pull to refresh

Comments 35

Темы с очередными интерпретаторами Brainfuck уже выебали мозг больше, чем сам Brainfuck
UFO landed and left these words here
Напишите уже ктонить интерпретатор C# на brainfuck, а не наоборот *irony*
Это канал о Брейнфаке, Вам в соседний.
астрологи объявили неделю брейнфака. количест^W ну вы поняли…
/me бурчит
А аккумулятор на текущую операцию?
Я понимаю, что пост получился бы длиннее, но это можно было бы реализовать в сорцах, на которые вы дали ссылку.

А в памяти сборку можно запустить, не сохраняя на диск? Этакий JIT бы получился…
Особенно понравилось MTB_IL.Emit(OpCodes.Stsfld,FDB_2);

Я даже врагу не пожелаю с такими именами дело иметь
Блять, напишите уже компилятор/интерпретатор Brainfuck на Brainfuck и успокойтесь…
UFO landed and left these words here
Хочу еще увидеть замеры в приросте производительности. Насколько быстрее будет работать скомпилированная программа от интерпритатора. Сколько съест памяти.

Компилятор это интересно. Только не совсем понятно, чем обусловлено ограничение в 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 секунды.
Весьма интересно. Надо попробовать в мою программу добавить похожие оптимизации.
UFO landed and left these words here
я написал транслятор брейнфака в nasm, скормил ему dbfi:

disk.tom.ru/g48ssfe
usage:
$ nasm -f elf dbfi.asm
$ ld -s -o dbfi dbfi.o
$ ./dbfi 
++++++++++[>+++++++>++++++++++>+++>+\
<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++\
++++++.>.+++.------.--------.>+.>.!
Hello World!
$
UFO landed and left these words here
Only those users with full accounts are able to leave comments. Log in, please.