Brainfuck: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Linha 82:
===Olá Mundo===
{{Ver artigo principal|[[Programa Olá Mundo em linguagens de programação esotéricas]]}}
<source lang="bf">
<pre>
++++++++++[>++++++++>+++++++++++
>---------->+++>++++++++>+++++++
Linha 88:
++++++++>+++<<<<<<<<<<-]>-.>--.>
++++.>++.>---.>---.>.>.>+.>+++.,
</presource>
 
O programa acima imprime na tela o texto (sem aspas): “Olá Mundo!”. Esse código poderia ser feito em uma única linha. Mais abaixo ainda, segue o mesmo código, escrito de forma mais legível, para explicar seu funcionamento:
 
<source lang="bf">
<pre>
++++++++++
[>++++++++>+++++++++++>---------->+++>++++++++>++++++++++++>+++++++++++>++++++++++>+++++++++++>+++
Linha 108:
>+++. Imprime '!'
, Aguarda alguma tecla ser pressionada
</presource>
 
brainfuck ignora todos os caracteres, exceto os oito: <code>+-<>[].,</code>. Por este motivo, todo o resto é considerado comentário. A primeira linha aloca o valor 10 na primeira célula. A segunda linha inicia um laço de repetição, que adiciona os valores seguintes nas células seguintes, e repete esse processo até que o valor da primeira célula seja igual a 0. Na linha seguinte, o ponteiro volta dez células, e diminui em 1, o valor dessa célula. Esse procedimento age como uma multiplicação, fazendo com que os valores seguintes sejam iguais aos valores iniciais de cada célula vezes a primeira célula (10). Os caracteres <code>></code> e <code><</code> avançam e retrocedem a célula atual, respectivamente. Os caracteres <code>[</code> e <code>]</code> abrem e encerram o laço, respectivamente.
Linha 119:
;Versão para a tecla Enter (ASCII 10):
 
<source lang="bf">
<pre>
,>++[<----->-]<[---------
-------------.,----------]
</presource>
 
;Versão para a tecla Enter (ASCII 13):
 
<source lang="bf">
<pre>
,>++[<------>-]<-[--------
-----------.,-------------]
</presource>
 
==Linguagens baseadas em brainfuck==