실행 결과: WQNMLGB
++++++++++[ 루프를 정의합니다. 이는 10번 루프를 의미합니다.
>++++ ++ +++ 새 변수 a에 9번 추가
>++++++++ 새 변수 b에 8번 추가
>++++++++ + 새 변수 c에 7번 추가
<<<-] 10번 끝날 때까지 괄호의 내용을 계속 반복합니다.
>--- 변수 a에서 3을 뺍니다. 그리고 출력< /p>
>+. b 변수는 1을 더한 후 출력됩니다.
---. b 변수는 3을 감소시킨 후 출력합니다.
-. -. b 변수는 1 감소하여 출력됩니다. b 변수는 1 감소된 후 출력
>+. c 변수는 1 씩 추가되어 출력됩니다
---- .c 변수는 5만큼 감소한 후 출력됩니다.
다음은 BrainFuck의 구문입니다.
> 포인터를 1씩 증가시키시겠습니까?
< 포인터를 1만큼 감소시키시겠습니까? ?
+ 포인터가 가리키는 바이트의 값을 1씩 증가시키나요?
- 포인터가 가리키는 바이트의 값을 1씩 감소시키나요?
< p>.포인터(ASCII 코드)가 가리키는 유닛의 내용을 출력 ?, 포인터(ASCII 코드)가 가리키는 유닛의 내용을 입력 ?
[포인터가 가리키는 단위값이 0이면 해당하는 명령어 옆의 명령어로 뒤로 점프한다.] 명령어,?
] 포인터가 가리키는 단위값이 0이 아닌 경우, 해당 [명령어의 다음 명령어로 점프합니다.
포인터가 위치한 메모리 블록과 포인터의 왼쪽과 오른쪽에 있는 메모리 블록은 0으로 초기화됩니다.
확장 정보:
Müller의 목표는 가장 작은 컴파일러로 구현할 수 있고 Turing의 완전한 아이디어를 준수하는 간단한 프로그래밍 언어를 만드는 것입니다. 언어는 8개의 상태로 구성되었으며 Amiga 시스템용으로 작성된 컴파일러(제2판)의 크기는 240바이트에 불과했습니다!
이름에서 알 수 있듯이 Brainfuck 프로그램은 읽기가 어렵습니다. 그럼에도 불구하고, 빌어먹을 튜링 기계는 어떤 계산 작업도 수행할 수 있습니다. Brainfuck은 다른 방식으로 계산되지만 올바르게 작동합니다.
이 언어는 명령어 외에도 0으로 초기화된 바이트 배열과 배열에 대한 포인터(처음에는 첫 번째 배열을 가리킴)를 포함하는 간단한 기계 모델을 기반으로 합니다. 바이트), 입력 및 출력을 위한 2바이트 스트림이 있습니다.
바이두백과사전-브레인퍽