Seu desafio é receber contribuições como esta (um programa Hello World):
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
E envie um prompt (que será "> "
):
>
O usuário pode inserir qualquer coisa no prompt. Seu depurador simples deve ter estes comandos:
S
- degrau- Envie a localização atual (consulte
L
) após a etapa. S(a positive integer)
- passo que muitos espaços
- Envie a localização atual (consulte
L
- localização- O termo "local" sempre se refere a onde você está no programa (ou seja, o ponteiro da instrução).
Formatado assim:
v +++++++[>+++++++<-]>.
Isso significa que o local atual do programa está no terceiro
+
.
G(an integer)
- vamos para- Isso significa continuar pisando até chegar a esse local. Se você chegar ao final do programa e não chegou lá, basta sair do programa.
- Um número inteiro negativo significa muitos caracteres do final. Sim, isso significa que
-0
é diferente0
e-1
é o penúltimo caractere. - Não produza nada para este comando.
D
- matriz de despejo- Formatado como
1, 2, 3, 4, 5
- Se a matriz for
1, 2, 3, 0, 0, 0, 0, 0, ...
, apenas a saída1, 2, 3
. D(a positive integer) (a positive integer)
- despejar todos os itens da matriz entre essas duas posições (inclusive)
- Formatado como
(a positive integer)
- gera o item atualmente nessa posição da matrizP
- gera o índice do ponteiro BF (a coisa que você altera com>
e<
).
Quando o programa solicitar entrada, mostre o prompt "I> "
. (Você pode inserir um caractere por vez.)
Quando produzir algo, mostre "O> " + (the output)
. Múltiplas saídas entre comandos devem ser encadeadas (ou seja, você não pode fazer > G-0 O> H O> e O> l O> l O> o ...
, tem que ser > G-0 O> Hello, World!
).
Saída "Done" e saia quando chegar ao final do programa.
Exemplo de execução:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
> S
1
> S
2
> S2
4
> S0
4
> L
v
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
> D
4
> 0
4
> D10 15
0, 0, 0, 0, 0, 0
> G-0
O> Hello, World!
Done
Exemplo de execução que mostra percorrendo loops e a P
instrução (calcula 3*2+1
)
+++[>++<-]>+
> S3
3
> L
v
+++[>++<-]>+
> S3
6
> L
v
+++[>++<-]>+
> P
1
> S3
9
> L
v
+++[>++<-]>+
> S
3
> L
v
+++[>++<-]>+
> D
2, 2
>
Exemplo de execução mostrando E / S
>+[>,---------------------------------]<[<]>[>.]
> G37
I> H
I> e
I> l
I> l
I> o
I> !
> D
0, 39, 68, 75, 75, 78
> G-0
O> 'DKKN
Done
Isso é código-golfe , então o código mais curto vencerá.