SNUSP
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.