Распечатать символы в brainfuck

Я новичок в этом языке, и я создаю интерпретатор brainfuck в scala. Я столкнулся с одной проблемой: что мне печатать, если значение в индексе памяти больше 127? какой настоящий мозговой интерпретатор печатает, если значение больше 127? например,
memory[index]=178, когда "." (команда печати) называется, что должен печатать iterpreter brainfuck?
Я скомпилировал несколько кодов на ideone.com, но он показывает ошибку времени выполнения.
для следующего кода:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++[+.<-]


person user2124441    schedule 15.02.2014    source источник


Ответы (2)


исходная реализация для . просто вызывает putchar() с любым значением unsigned char в сотовый:

...
case '.': putchar(a[p]); fflush(stdout); break;
...

Это означает, что отображение символов 128-255 зависит от того, какую кодировку использует ваш терминал. Если я установлю для себя значение CP437, символы 32–255 будут выглядеть так:

пример вывода

В вашем случае метод Scala toChar для чисел звучит так, как будто он должен делать то, что вы хотите; Кроме того, возможно, ideone просто странно печатает расширенный ASCII.

person Lynn    schedule 15.02.2014
comment
да @nooodl ideone показывает ошибку времени выполнения, возможно, эти символы не поддерживаются. в любом случае, спасибо :) - person user2124441; 15.02.2014

Тщательной спецификации языка нет, но в большинстве интерпретаторов увеличение ячейки, содержащей максимальное значение (с помощью команды +), приведет к ее минимальному значению и наоборот.

person Etheryte    schedule 15.02.2014