브레인퍽. 우어반 뮐러(Urban Müller)가 1993년에 만든 난해한 프로그래밍 언어로서, 소스코드 파일 확장자는 .b 또는 .bf이다. 이름에 Fuck이 들어가기 때문에 Brainf*** 등으로 필터링 당하기도 한다.
조금 과격한 표현이긴 하지만 뇌에 fuck을 할 정도로 매우 난해하다는 것을 보여준다.
특징[편집 | 원본 편집]
개발 목적은 가장 작은 컴파일러로 구현 가능한 튜링 완전한 프로그래밍 언어였다고 한다. 이에 걸맞게 명령어는 ><+-.,[]로 8종류밖에 되지 않으며, 두번째로 제작된 컴파일러의 크기가 240바이트(...)라는 위엄을 보여준다.
포인터를 기반으로 한 명령 체계를 가지고 있다.
명령어[편집 | 원본 편집]
문자 | 의미 |
---|---|
>
|
포인터를 증가시킨다. |
<
|
포인터를 감소시킨다. |
+
|
포인터가 가리키는 바이트의 값을 증가시킨다. |
-
|
포인터가 가리키는 바이트의 값을 감소시킨다. |
.
|
포인터가 가리키는 바이트의 값을 ASCII 문자로 출력한다. |
,
|
포인터가 가리키는 바이트에 입력받은 문자의 ASCII 값을 넣는다. |
[
|
포인터가 가리키는 바이트의 값이 0이면 짝이 되는 뒷쪽의 ] 로 이동한다.
|
]
|
포인터가 가리키는 바이트의 값이 0이 아니면 짝이 되는 앞쪽의 [ 로 이동한다.
|
이외의 문자는 처리되지 않으므로, 굳이 원한다면 주석을 넣을수도 있다. 누가 하겠느냐만은
이 언어로 Hello, World!를 작성하면 다음과 같다.
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+ ++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
파생 언어[편집 | 원본 편집]
이 언어에서 기호만 바꿔서 만들어낸 언어들도 존재한다. Ook!이 대표적. Ook!은 오랑우탄이 이렇게 말하잖아! 해서 만든건데, 왜 오랑우탄이냐 하면 디스크월드의 보이지 않는 대학의 사서가 오랑우탄이기 때문...
포인터가 두 개인 더블퍽도 있다. 구글 검색. ㅗㅗ <- 이미지 검색하면 나온다.