SNUSP é uma linguagem de programação esotérica bidimensional baseada em brainfuck. É mais próxima do brainfuck que sua semelhante, PATH.
Forma da linguagem
A linguagem, tal qual brainfuck, usa o conceito de células de memória. Não há um padrão para o total de células de memória ou para o tamanho individual das células de memória.
Comandos
Comando | Função |
---|---|
$ |
Inicia o código, andando para a direita. Se não houver, começa no canto superior esquerdo. |
> |
Acessa a célula de memória seguinte. |
< |
Acessa a célula de memória anterior. |
+ |
Incrementa o valor da célula de memória selecionada. |
- |
Decrementa o valor da célula de memória selecionada. |
. |
Imprime no dispositivo de saída o caractere relativo à célula de memória selecionada. |
, |
Obtém, na célula de memória selecionada, o valor enviado por um dispositivo de entrada. |
/ |
|
\ |
|
! |
Pula o comando seguinte. |
? |
Pula o comando seguinte se a célula de memória selecionada conter 0. |
@ |
Indica uma subrotina, iniciada no comando seguinte. Quando finalizar a subrotina, retorna para esse ponto e pula o comando seguinte. |
# |
Termina uma subrotina. Se não estiver em subrotina nenhuma, termina a execução do programa. |
Compatibilidade com brainfuck
SNUSP não é diretamente compatível com brainfuck, nem brainfuck com SNUSP, pois os comandos de controle de fluxo [
e ]
, usados em brainfuck, não são válidos em SNUSP, cujos comandos de controle de fluxo são ?
, !
, \
e /
.
Compatibilidade com PATH
PATH e SNUSP não são intercambiáveis, apesar de serem muito semelhantes. Os comandos $
, !
, \
, /
, .
, ,
, +
e -
são válidos em ambas as linguagens. Os comandos @
e ?
são específicos de SNUSP. Em cada uma das linguagens, >
, <
e #
têm funções diferentes. Já os comandos {
, ^
, v
e }
são específicos de PATH.