Обновить
96

Пользователь

0,1
Рейтинг
9
Подписчики
Отправить сообщение
По первому пункту. Чтение файла программы происходит в строке
FOR /F "eol=c delims=*" %%I IN (%1) DO SET bf_prog=!bf_prog!%%I
попробуйте ему скормить что то примерно с таким с содержимым ">>-<<>" Причем как с экранирующим символом, как без оного.
Можно, конечно изменить код на такой SET bf_prog=!bf_prog!"%%I". Тогда текст программы считывается, но начинают вылезать ошибки в других местах. Проще изменить словарь языка.

По второму пункту. В Вашем варианте выглядит все красивей и работает шустрей.
В моем варианте тестовый пример выполнялся с 10:18:11,59 по 10:19:45,20 — 93 сек
Переделанный вариант — с 10:19:45,21 по 10:21:01,66 — 75 сек
Запустив тест на динозавре вообще получил цифры порядка 6 и 4 минут.

За подсказку спасибо. Код переделал.

А Microsoft все равно виноват, что работает очень медленно. Как уже было показано, падение скорости из-за создания новых процессов не такое уж и катастрофическое.
В результате k06a, выложивший мою статью был забанен на месяц.
Он просил передать, чтобы не повторяли его ошибок.
Большая беда здесь будет не реализация, а скорость работы. Батники выполняются мучительно долго независимо от производительности процессора. Пример, приведенный в статье, у меня выполнялся 76 сек на i7-2600. Результата работы эмулятора мы рискуем вовсе не дождаться.
Вот здесь есть пример интерпретатора длиной 433 байта.
Яву не потяну. Максимум Forth. Осталось решить, он на батнике будет реализован или на Brainfuck.
12 ...
39

Информация

В рейтинге
3 599-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность