javax_slr (javax_slr) wrote,
javax_slr
javax_slr

Требуются программисты на BrainFuck language

В нашу  контору требуются программисты на языке Brainfuck (http://en.wikipedia.org/wiki/Brainfuck) с опытом минимум 3 года, а еще лучше - с Явовской имплементацией BrainFuck (http://www.svenstucki.ch/hp/node/1) и опытом интеграции Брейнфака с Spring framework.


В нём всего 8 символов

Character

Meaning

>

increment the data pointer (to point to the next cell to the right).

<

decrement the data pointer (to point to the next cell to the left).

+

increment (increase by one) the byte at the data pointer.

-

decrement (decrease by one) the byte at the data pointer.

.

output the byte at the data pointer as an ASCII encoded character.

,

accept one byte of input, storing its value in the byte at the data pointer.

[

if the byte at the data pointer is zero, then instead of moving the instruction pointer forward to the next command, jump it forward to the command after the matching ] command*.

]

if the byte at the data pointer is nonzero, then instead of moving the instruction pointer forward to the next command, jump it back to the command after the matching [ command*.

Так что написание и отладка програм очень упрощаются - не надо знать сложный синтаксис, семантику и API

Вот пример “Hello world” на brainfuck 

+++++ +++++             initialize counter (cell #0) to 10

[                       use loop to set the next four cells to 70/100/30/10

    > +++++ ++              add  7 to cell #1

    > +++++ +++++           add 10 to cell #2

    > +++                   add  3 to cell #3

    > +                     add  1 to cell #4

    <<<< -                  decrement counter (cell #0)

]                  

> ++ .                  print 'H'

> + .                   print 'e'

+++++ ++ .              print 'l'

.                       print 'l'

+++ .                   print 'o'

> ++ .                  print ' '

<< +++++ +++++ +++++ .  print 'W'

> .                     print 'o'

+++ .                   print 'r'

----- - .               print 'l'

----- --- .             print 'd'

> + .                   print '!'

> .                     print '\n'

Это же можно переписать в строчку:

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

По этим линкам примеры программ:

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

http://hackage.haskell.org/packages/archive/brainfuck/0.1/doc/html/Language-Brainfuck-Examples.html

http://stackoverflow.com/questions/4995624/source-for-simple-programs-in-brainfuck

А вот пузырьковая сортировка:


 >>>>>,+}?<<<}?;
>>>,+?;
<<<}?>>>}?>>>}}?{{{{<<<?;
>>>}}}}?<<<}?>>}?<}?{{{{{{{<<?;
-.}?{?;
-?;
>>>?;
-<<<-<+>}}}}?{{{{>>?;
<?;
>>>+<<<-?;
>+>>>+<<<<-?;
>?;

Subscribe

  • Как мы ездили за снегом

    Узнав, что в Иерусалиме ожидают снег, я взял отгул и с Мейталь (которая не сильно грустила, что я ее отрываю от уроков в Зуме) поехал в Иерусалим.…

  • Иерусалим

    Когда то у нас был период, в который мы ездили в Старый город пару раз в месяц. И на экскурсии и сами. Большая часть иерусалимских глав моей полной…

  • Прогулка по Иерусалиму

    Цели были две - посетить Царские могилы и поснимать. Пока на главных и базарных улицах реально не протолкнуться, на небольших улочках между…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 18 comments

  • Как мы ездили за снегом

    Узнав, что в Иерусалиме ожидают снег, я взял отгул и с Мейталь (которая не сильно грустила, что я ее отрываю от уроков в Зуме) поехал в Иерусалим.…

  • Иерусалим

    Когда то у нас был период, в который мы ездили в Старый город пару раз в месяц. И на экскурсии и сами. Большая часть иерусалимских глав моей полной…

  • Прогулка по Иерусалиму

    Цели были две - посетить Царские могилы и поснимать. Пока на главных и базарных улицах реально не протолкнуться, на небольших улочках между…