Показать сообщение отдельно
Старый 09.10.2009, 15:19   #3
Tronix
Знающий
 
Регистрация: 26.07.2009
Адрес: Россия, Москва
Сообщений: 318
Написано 103 полезных сообщений
(для 331 пользователей)
Ответ: Интерпритатор языка brainfuck

just for fun.

Почти переписал с нуля. Теперь транслятор имеет некий пре-процессор, который сперва избавляется от всех символов, которые не являются опкодами BrainFuck, затем выполняет оптимизацию:
<<<<< = заменяется на p# (prev)
>>>>> = заменяется на n# (next)
+++++ = заменяется на i# (inc)
----- = заменяется на d# (dec)
[-],[=] = заменяется на z (zero)
[<] = заменяется на l (left)
[>] = заменяется на r (right)
В итоге код из 20Kb может сократится до 3-5Kb. Далее транслятор обрабатывает уже этот байт-код, повышая тем самым быстродействие.
Присутствуют ключи:
-c - создать на диске файл OUT.BC, содержащий в себе байт-код после пре-процессора.
-d - запретить препроцессор и выполнять обычным транслятором (если какие-то программы зависают).

Исходники и новый EXE с новыми программами для BrainFuck прилагаются в первом сообщении.
(Offline)
 
Ответить с цитированием