2014-02-15 3 views
2

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

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

ответ

1

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

1

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

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

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

example output

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

+1

Да @nooodl ideone показывает ошибку времени выполнения, возможно, не поддерживает эти символы. в любом случае, спасибо :) – user2124441

Смежные вопросы