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é diferente0e-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 Pinstruçã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á.