L00P

Origem: Wikipédia, a enciclopédia livre.
Ir para: navegação, pesquisa

L00P é uma linguagem de programação esotérica, baseada na linguagem brainfuck e criada por Georg Westenberger.

Estrutura da Linguagem[editar | editar código-fonte]

Como em brainfuck, a memória é acessada por um programa em L00P através de células de memória. Não há um padrão definido para o total de células de memória, nem para o tamanho de cada célula de memória. Em sua versão original, cada célula de memória era um Word (2 Bytes).

Uma das diferenças entre brainfuck e L00P é que, em L00P, as células de memória podem conter números negativos.

Os comandos de controle de fluxo de brainfuck são aceitos, mas [ é interpretado como (, e ] é interpretado como ).

O programa é executado em um loop implícito e contínuo.

Comandos[editar | editar código-fonte]

Caractere Função C
>
Acessa a célula de memória seguinte. p++;
<
Acessa a célula de memória anterior. p--;
+
Aumenta um à célula de memória selecionada. *p++;
-
Subtrai um da célula de memória selecionada. *p--;
.
Imprime na tela o caractere relativo à célula de memória selecionada. printf("%c",*p);
:
Imprime na tela o valor numérico da célula de memória selecionado. printf("%i",*p);
,
Salva na célula de memória selecionada o código de uma tecla clicada. *p=getch();
;
Salva na célula de memória selecionada o valor númerico relativo a uma tecla clicada. scanf("%i",p);
0
Zera a célula de memória selecionada. *p=0;
*
Duplica a célula de memória selecionada. *p=*p*2;
_
Inverte o sinal da célula de memória selecionada. *p=-*p;
#
Soma o valor da célula de memória selecionada ao valor do ponteiro. *p=*p+p;
@
Torna o valor da célula de memória selecionada igual à célula de memória em seu valor mais seu ponteiro. *p=*(p+*p);
$
Faz a célula de memória em seu valor mais seu ponteiro ser igual ao seu valor. *(p+*p)=*p;
&
Finaliza o programa return(0);
S
Obtém o sinal da célula de memória selecionada. *p=(*p>0)?1:((*p==0)?0:-1);
(
Início da estrutura de controle de fluxo IF. if(*p){
|
Estrutura de controle de fluxo ELSE. }else{
)
Fim da estrutura IF. };

Compatibilidade com brainfuck[editar | editar código-fonte]

Os códigos em L00P são quase 100% incompatíveis com brainfuck, e isso é recíproco. A ausência das estruturas convencionais de loop ([ e ]), e a existência do loop implícito fazem as técnicas de programação serem muito diferentes. Poucos são os códigos que oferecem suporte a ambas as linguagens.

Ver também[editar | editar código-fonte]

Ligações externas[editar | editar código-fonte]

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