Brainfuck

최근 편집: 2023년 4월 26일 (수) 09:35

브레인퍽. 우어반 뮐러(Urban Müller)가 1993년에 만든 난해한 프로그래밍 언어로서, 소스코드 파일 확장자는 .b 또는 .bf이다. 이름에 Fuck이 들어가기 때문에 Brainf*** 등으로 필터링 당하기도 한다.

특징

개발 목적은 가장 작은 컴파일러로 구현 가능한 튜링 완전프로그래밍 언어였다고 한다. 이에 걸맞게 명령어는 ><+-.,[]로 8종류밖에 되지 않으며, 두번째로 제작된 컴파일러의 크기가 240바이트(...)라는 위엄을 보여준다.

포인터를 기반으로 한 명령 체계를 가지고 있다.

명령어

문자 의미
> 포인터를 증가시킨다.
< 포인터를 감소시킨다.
+ 포인터가 가리키는 바이트의 값을 증가시킨다.
- 포인터가 가리키는 바이트의 값을 감소시킨다.
. 포인터가 가리키는 바이트의 값을 ASCII 문자로 출력한다.
, 포인터가 가리키는 바이트에 입력받은 문자의 ASCII 값을 넣는다.
[ 포인터가 가리키는 바이트의 값이 0이면 짝이 되는 뒷쪽의 ]로 이동한다.
] 포인터가 가리키는 바이트의 값이 0이 아니면 짝이 되는 앞쪽의 [로 이동한다.

이외의 문자는 처리되지 않으므로, 굳이 원한다면 주석을 넣을수도 있다. 누가 하겠느냐만은

이 언어로 Hello, World!를 작성하면 다음과 같다.

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

파생 언어

이 언어에서 기호만 바꿔서 만들어낸 언어들도 존재한다. Ook!이 대표적.