Brainfuck是一种极小化的计算机语言,它是由Urban Müller在1993年创建的。由于fuck在英语中是脏话,这种语言有时被称为brainf*ck或brainf**k,甚至被简称为BF。这种语言,是一种按照"Turing complete(完整图灵机)"思想设计的语言。
它的主要设计思路是:用最小的概念实现一种"简单"的语言,BrainFuck 语言只有八种符号,所有的操作都由这八种符号的组合来完成。BF基于一个简单的机器模型,除了八个指令,这个机器还包括:一个以字节为单位、被初始化为零的数组、一个指向该数组的指针(初始时指向数组的第一个字节)、以及用于输入输出的两个字节流。
字符含义:
> : 指针加一 :++ptr;
< : 指针减一 : --ptr;
+ : 指针指向的字节的值加一 : ++*ptr;
- : 指针指向的字节的值减一 : --*ptr;
. : 输出指针指向的单元内容(ASCII码) : cout << (*ptr);
, : 输入内容到指针指向的单元(ASCII码) : cin >> (*ptr);
[ : 如果指针指向的单元值为零,向后跳转到对应的]指令的次一指令处 : while (*ptr) {
] : 如果指针指向的单元值不为零,向前跳转到对应的[指令的次一指令处 : }
HelloWorld代码:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.