Я пишу интерпретатор Brainfuck в Python, и я в настоящее время тестирую этот код:Brainf * интерпретация входа ска
,>++++++[<-------->-],[<+>-]<.
с этим входом:
43
Польского Википедия говорит, результат должен быть 7 , но что-то здесь не так. Как я должен рассматривать ввод? Как 4 и 3, так и «4» и «3» (52 и 51)? Если я обрабатываю входные символы как целые числа, тогда результат равен -41, потому что после первого цикла [0] есть -44 и [1] равно 0, тогда [1] становится 3, и мы добавляем, что от 3 до -44, что приводит к - 41.
С другой стороны, если я обрабатываю входные символы как коды ASCII, то после первого цикла [0] равно 4, а [1] равно 0, тогда [1] становится 51, и мы добавляем, что от 51 до 4, что приводит к 55. (этот интерпретатор JavaScript также дает результат 55: https://www.nayuki.io/page/brainfuck-interpreter-javascript)
Однако я загрузил некоторый интерпретатор, написанный на C, и он дает результат 7, то же, что и в Википедии ... так что я смущен. Существует такой переводчик: http://pastebin.com/aasxLppa, также этот интерпретатор дает результат 7: brainfuck.tk -.-