'>' : перейти на следующую переменную,
'<' : перейти на предыдущую переменную,
'+' : увеличить значение текущей переменной на 1,
'-' : уменьшить значение текущей переменной на 1,
',' : получить значение текущей переменной с входа (в ASCII),
'.' : вывести значение текущей переменной (в ASCII),
'[' : если значение текущей переменной - 0, то перейти на комманду, следующую за соответствующим символом ']',
']' : переход на соответствующий символ '[' в програме.
[off]добавлено Чт Янв 15, 2004 15:48:[/off]
Аналоги комманд языка Brainfuck на C:
> : ++p;
< : --p;
+ : ++*p;
- : --*p;
. : putchar(*p);
, : *p=getchar();
[ : while(*p){
] : }
[off]добавлено Чт Янв 15, 2004 15:59:[/off]
<a href=https://bugaga.ru/jokes/ target=_blank>прикол</a> этого языка, помимо достаточности восьми комманд, является в существовании очень коротких интерпретаторов для него, например,
Код: Выделить всё
char m[9999],*n[99],*r=m,*p=m+5000,**s=n,d,c;main(){for(read(0,r,4000);c=*r;
r++)c-']'||(d>1||(r=*p?*s:(--s,r)),!d||d--),c-'['||d++||(*++s=r),d||(*p+=c==
'+',*p-=c=='-',p+=c=='>',p-=c=='<',c-'.'||write(2,p,1),c-','||read(2,p,1));}
Код: Выделить всё
char m[9999],*n[99],*r=m,*p=m+5000,**s=n,d,c;
main()
{for(read(0,r,4000);c=*r;r++)
c-']'||(d>1||(r=*p?*s:(--s,r)),!d||d--),
c-'['||d++||(*++s=r),
d||(*p+=c=='+',*p-=c=='-',p+=c=='>',p-=c=='<',c-'.'
||write(2,p,1),c-','||read(2,p,1));
}
[off]добавлено Чт Янв 15, 2004 16:07:[/off]
Ссылки:
http://www.muppetlabs.com/~breadbox/bf/
http://home.planet.nl/~faase009/Ha_BF.html
http://esoteric.sange.fi/brainfuck/
http://cydathria.com/bf/
http://daniel.lorch.cc/projects/brainfuck/
http://www.hevanet.com/cristofd/brainfuck/
http://www.ecs.soton.ac.uk/~sdh300/stuffage/bf.net/
http://koeln.ccc.de/prozesse/zombies/br ... dex.en.xml
[off]добавлено Чт Янв 15, 2004 16:18:[/off]
Пример: ,[->++<]>. вводит число, удваивает его и выводит его.
Интересные задания:
- возвести число в квадрат
- вывести как можно большее число программой небольшой длины
- программа печати простых чисел
- программа, печатающая собственный текст
- интерпретатор Brainfuck на Brainfuck