<< 당신이 회사의 암적 존재는 아닌가요? | Home | 생각 조각[1] >>

브레인퍽(Brainfuck)

Brainfuck

최소주의 컴퓨터 프로그래밍 언어라고 들어보셨나요? ㅋㅋ 재미있는 언어입니다. 당신의 뇌를 엿먹이는 프로그래밍 언어. 난해하지만, 기분전환 겸 한번 테스트 해 보시길..

1. 언어 개요
- 브레인퍽(Brainfuck)은 우어반 뮐러(Urban Muller)가 1993년 경에 만든 최소주의 컴퓨터 프로그래밍 언어. 이름에 포함된 fuck이 욕설이기 때문에, 정중한 표현을 위해서 때때로 Brainf*ck, Brainf***, 혹은 단순히 BF라고 부르기도 한다.

2. 명령어 정의
- 명령은 총 8가지. 모두 0으로 채워진 30000 바이트의 배열과 포인터 변수 p가 주어지며 모든 연산은 1 바이트를 기준으로 한다.
문자 의미
> 포인터를 증가시킨다.
< 포인터를 감소시킨다.
+ 포인터가 가리키는 바이트의 값을 증가시킨다.
- 포인터가 가리키는 바이트의 값을 감소시킨다.
. 포인터가 가리키는 바이트의 값을 ASCII 문자로 출력한다.
, 포인터가 가리키는 바이트에 입력받은 문자의 ASCII 값을 넣는다.
[ 포인터가 가리키는 바이트의 값이 0이면 짝이 되는 뒷쪽의 ]로 이동한다.
] 포인터가 가리키는 바이트의 값이 0이 아니면 짝이 되는 앞쪽의 [로 이동한다.

3. 간단한 샘플 및 실행 결과
>cat bf.c
s[99],*r=s,*d,c;main(a,b){char*v=1[d=b];for(;c=*v++%93;)for(b=c&2,b=c%7?a&&(c&17
?c&1?(*r+=b-1):(r+=b-1):syscall(4-!b,b,r,1),0):v;b&&c|a**r;v=d)main(!c,&a);d=v;}

>gcc bf.c -o bf
>./bf '++++++++++[>+++++++>++++++++++>+++>+
<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>
.+++.------.--------.>+.>.'
Hello World!

4. 그외 난해한 언어들
- Malbolge, Ook, Befunge, ETA, HQ9+, Whitespace, MAMASH

[참고 사이트]
Tags : , ,



Add a comment Send a TrackBack