SNUSP é uma linguagem de programação esotérica bidimensional baseada em brainfuck. É mais próxima do brainfuck que sua semelhante, PATH.

Forma da linguagem editar

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 editar

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.
/
  • Se estiver andando para Baixo, vira para a Esquerda.
  • Se estiver andando para a Esquerda, vira para Baixo.
  • Se estiver andando para a Direita, vira para Cima.
  • Se estiver andando para Cima, vira para a Direita.
\
  • Se estiver andando para Baixo, vira para a Direita.
  • Se estiver andando para a Direita, vira para Baixo.
  • Se estiver andando para a Esquerda, vira para Cima.
  • Se estiver andando para Cima, vira para a Esquerda.
!
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 editar

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 editar

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.

Ver também editar

  Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.