1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Brainfuck

Discussão em 'Programação' iniciada por The_Nemesis, 6 de Outubro de 2005. (Respostas: 7; Visualizações: 1048)

  1. The_Nemesis

    The_Nemesis Power Member

    http://www.muppetlabs.com/~breadbox/bf/

    Alguem sabe o que isto é?

    Já alguem tentou programar nisto e que limitações tem?

    Ou é mesmo uma linguagem para pura tanga e de utilidade reduzida?
     
  2. sapropel

    sapropel Power Member

    é mesmo um linguagem de pura tanga e utilidade reduzida..
    o autor queria criar o menor compilador de sempre para uma linguagem, linguagem de 8 instrucções apenas, que existe só pela piada.

    começa logo por ter uma sintaxe pessima, pior só mm em binario.
    podes brincar só pela piada, mas está fora de questão usa-la para algo em que a produtividade tenha de existir,
     
  3. peter alien

    peter alien Power Member

    Só pelo nome... ;)
     
  4. KiKas

    KiKas Power Member

    aqui fica o clássico hello world



    ++++++++++
    [
    >+++++++>++++++++++>+++>+<<<<-
    ] The initial loop to set up useful values in the array
    >++. print 'H'
    >+. print 'e'
    +++++++. 'l'
    . 'l'
    +++. 'o'
    >++. space
    <<+++++++++++++++. 'W'
    >. 'o'
    +++. 'r'
    ------. 'l'
    --------. 'd'
    >+. '!'
    >. newline
     
  5. KiKas

    KiKas Power Member

    Para quem tem curiosidade aqui está um dos maiores programas jamais feito em brainfuck (reparem no pormenor da identação)


    * factor an arbitrarily large positive integer
    *
    * Copyright (C) 1999 by Brian Raiter
    * under the GNU General Public License

    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>-

    *
    * read in the number
    *

    <<<<<<<<<+
    [-[>>>>>>>>>>][-]<<<<<<<<<<[[->>>>>>>>>>+<<<<<<<<<<]<<<<<<<<<<]
    >>>>>>>>>>,----------]
    >>>>>>>>>>[------------------------------------->>>>>>>>>->]
    <[+>[>>>>>>>>>+>]<-<<<<<<<<<<]-

    *
    * display the number and initialize the loop variable to two
    *

    [>++++++++++++++++++++++++++++++++++++++++++++++++.
    ------------------------------------------------<<<<<<<<<<<]
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
    --------------------------.[-]
    >>>>>>>>>>>>++<<<<+

    *
    * the main loop
    *

    [ [-]>>

    *
    * make copies of the number and the loop variable
    *

    [>>>>[-]>[-]>[-]>[-]
    >[-]>[-]
    <<<<<<<[->>>+>+<<<<]>>>>>>>>]
    <<<<<<<<<<[>>>>>>[-<<<<+>>>>]<<<<<<<<<<<<<<<<]>>>>>>>>>>
    [>[->>>+>>+<<<<<]>>>>>>>>>]
    <<<<<<<<<<[>>>>>>[-<<<<<+>>>>>]<<<<<<<<<<<<<<<<]>>>>>>>>>>

    *
    * divide the number by the loop variable
    *

    [>>>[-]>>>[-]>[-]>>>] initialize
    <<<<<<<<<<[<<<<<<<<<<]
    >>>>>>>>>[-]>>>>>>>+<<<<<<<<[+]+
    [ ->> double divisor until above dividend
    [>>>>>>[->++<]>>>>]<<<<<<<<<<
    [>>>>>>>>[-]>[-]
    <<<<[->>>++<<<]<<<<<<<<<<<<<<<]>>>>>>>>>>
    [>>>>>>>>[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<
    [->--------->>>>>>>>>+<<<<<<<<<<[->+<]]]]]]]]]]]>>]
    <<<<<<<<<<[>>>>>>>>>[-<+<<<+>>>>]<<<<<<<<<<<<<<<<<<<]>>>>>>>>>>
    [>>>>>>>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>
    [-<--------->>>>>>>>>>>+<<<<<<<<<<[-<+>]]]]]]]]]]]>>>]
    <<<<<<<<<<
    [>>>>[->>>+>>+<<<<<]<<<<<<<<<<<<<<]
    >>>>>>>>>>[>>>>>>>[-<<<+>>>]>>>]<<<<<<<<<<
    [>>>>>>>>[->-<]>
    [<<<<<<<<<[<[-]>>>>>>>>>>[-<<<<<<<<<<+>>>>>>>>>>]<<<<<<<<<<<<<<<<<<<]
    >>>>>>>>>>>>>>>>>>>]
    <<<<<<<<<<<<<<<<<<<]
    >>>>>>>>>[+[+[+[+[+[+[+[+[+[+[[-]<+>]]]]]]]]]]]<
    ]
    >>>>>>>>
    [ subtract divisor from dividend
    <<<<<<
    [>>>>>>>>[-]>[-]<<<<<[->>>+>+<<<<]>>>>>>]<<<<<<<<<<
    [>>>>>>>>[-<<<<+>>>>]<<<[->>>+>+<<<<]<<<<<<<<<<<<<<<]>>>>>>>>>>
    [>>>>>>>>>[-<<<<+>>>>]>]<<<<<<<<<<
    [>>>>>>>>[-<->]<<<<<<<<<<<<<<<<<<]>>>>>>>>>>
    [>>>>>>>[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<
    [++++++++++[+>-<]>>>>>>>>>>-<<<<<<<<<<]]]]]]]]]]]>>>]
    >>>>>>>+
    [ if difference is nonnegative then
    [-]<<<<<<<<<<<<<<<<< replace dividend and increment quotient
    [>>>>[-]>>>>[-<<<<+>>>>]<<[->>+<<]<<<<<<<<<<<<<<<<]>>>>>>>>>>
    [>>>>>>>>[->+<<<+>>]>>]<<<<<<<<<<
    [>>>[->>>>>>+<<<<<<]<<<<<<<<<<<<<]>>>>>>>>>>
    [>>>>>>>>>[-<<<<<<+>>>>>>[-<<<<<<+>>>>>>
    [-<<<<<<+>>>>>>[-<<<<<<+>>>>>>
    [-<<<<<<+>>>>>>[-<<<<<<+>>>>>>
    [-<<<<<<+>>>>>>[-<<<<<<+>>>>>>
    [-<<<<<<+>>>>>>[-<<<<<<--------->>>>>>>>>>>>>>>>+<<<<<<<<<<
    [-<<<<<<+>>>>>>]]]]]]]]]]]>]
    >>>>>>>
    ] halve divisor and loop until zero
    <<<<<<<<<<<<<<<<<[<<<<<<<<<<]>>>>>>>>>>
    [>>>>>>>>[-]<<[->+<]<[->>>+<<<]>>>>>]<<<<<<<<<<
    [+>>>>>>>[-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+>
    [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+>
    [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+>
    [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+>
    [-<<<<<<<+>>>>>>>]]]]]]]]]<<<<<<<
    [->>>>>>>+<<<<<<<]-<<<<<<<<<<]
    >>>>>>>
    [-<<<<<<<<<<<+>>>>>>>>>>>]
    >>>[>>>>>>>[-<<<<<<<<<<<+++++>>>>>>>>>>>]>>>]<<<<<<<<<<
    [+>>>>>>>>[-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>>
    [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>>
    [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>>
    [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>>
    [-<<<<<<<<+>>>>>>>>]]]]]]]]]<<<<<<<<
    [->>>>>>>>+<<<<<<<<]-<<<<<<<<<<]
    >>>>>>>>[-<<<<<<<<<<<<<+>>>>>>>>>>>>>]>>
    [>>>>>>>>[-<<<<<<<<<<<<<+++++>>>>>>>>>>>>>]>>]<<<<<<<<<<
    [<<<<<<<<<<]>>>>>>>>>>
    >>>>>>
    ]
    <<<<<<

    *
    * make copies of the loop variable and the quotient
    *

    [>>>[->>>>+>+<<<<<]>>>>>>>]
    <<<<<<<<<<
    [>>>>>>>[-<<<<+>>>>]<<<<<[->>>>>+>>+<<<<<<<]<<<<<<<<<<<<]
    >>>>>>>>>>[>>>>>>>[-<<<<<+>>>>>]>>>]<<<<<<<<<<

    *
    * break out of the loop if the quotient is larger than the loop variable
    *

    [>>>>>>>>>[-<->]<
    [<<<<<<<<
    [<<[-]>>>>>>>>>>[-<<<<<<<<<<+>>>>>>>>>>]<<<<<<<<<<<<<<<<<<]
    >>>>>>>>>>>>>>>>>>]<<<<<<<<<<<<<<<<<<]
    >>>>>>>>[>-<[+[+[+[+[+[+[+[+[+[[-]>+<]]]]]]]]]]]>+

    [ [-]

    *
    * partially increment the loop variable
    *

    <[-]+>>>>+>>>>>>>>[>>>>>>>>>>]<<<<<<<<<<

    *
    * examine the remainder for nonzero digits
    *

    [<<<<<<[<<<<[<<<<<<<<<<]>>>>+<<<<<<<<<<]<<<<]
    >>>>>>>>>>>>>>>>>>>>[>>>>>>>>>>]<<<<<<<<<<[<<<<<<<<<<]
    >>>>-

    [ [+]

    *
    * decrement the loop variable and replace the number with the quotient
    *

    >>>>>>>>-<<[>[-]>>[-<<+>>]>>>>>>>]<<<<<<<<<<

    *
    * display the loop variable
    *

    [+>>[>>>>>>>>+>>]<<-<<<<<<<<<<]-
    [>>++++++++++++++++++++++++++++++++++++++++++++++++.
    ------------------------------------------------<<<<<<<<<<<<]
    ++++++++++++++++++++++++++++++++.[-]>>>>

    ]

    *
    * normalize the loop variable
    *

    >>>>>>
    [>>[->>>>>+<<<<<[->>>>>+<<<<<
    [->>>>>+<<<<<[->>>>>+<<<<<
    [->>>>>+<<<<<[->>>>>+<<<<<
    [->>>>>+<<<<<[->>>>>+<<<<<
    [->>>>>+<<<<<[->>>>>--------->>>>>+<<<<<<<<<<
    [->>>>>+<<<<<]]]]]]]]]]]>>>>>>>>]
    <<<<<<<<<<[>>>>>>>[-<<<<<+>>>>>]<<<<<<<<<<<<<<<<<]
    >>>>>>>>>

    ]<

    ]>>

    *
    * display the number and end
    *

    [>>>>>>>>>>]<<<<<<<<<<[+>[>>>>>>>>>+>]<-<<<<<<<<<<]-
    [>++++++++++++++++++++++++++++++++++++++++++++++++.<<<<<<<<<<<]
    ++++++++++.





    --------------------------------------------------------------------------------



    http://en.wikipedia.org/wiki/Brainfuck
     
  6. turbulence

    turbulence Power Member

    lol so mesmo para atrofiadinhos!
     
  7. kingdom

    kingdom 1st Folding then Sex

    Ya ... o nome da linguagem diz tudo.;)
     
  8. redalert

    redalert Folding Member


    /me dies... :drooling:
     

Partilhar esta Página