There is such a thing as an interpreter. An interpreter can interpret. An interpreter can finish. When an interpreter is to finish: There is a scribe called Goodbye. Goodbye is to write "}\n". I am to quit. When an interpreter is to interpret: There is a scribe called Troz. There is a mathematician called Zort. There is a linguist called The_World. There is an inputter called Narf. I have a phrase called Poit. Narf is to readOne Poit. The_World's first operand is Poit. If Narf says it's done then I am to finish. The_World's second operand is "+". The_World is to compare. If The_World says it's equal then Troz is to write "*p++;\n". The_World's second operand is "-". The_World is to compare. If The_World says it's equal then Troz is to write "*p--;\n". The_World's second operand is "[". The_World is to compare. If The_World says it's equal then Troz is to write "while (*p) {\n". The_World's second operand is "]". The_World is to compare. If The_World says it's equal then Troz is to write "}\n". The_World's second operand is ">". The_World is to compare. If The_World says it's equal then Troz is to write "p++;\n". The_World's second operand is "<". The_World is to compare. If The_World says it's equal then Troz is to write "p--;\n". The_World's second operand is ".". The_World is to compare. If The_World says it's equal then Troz is to write "putchar(*p);\n". The_World's second operand is ",". The_World is to compare. If The_World says it's equal then Troz is to write "*p=getchar();\n". If 1 then I am to loop. When this program starts: There is a scribe called We_Shall_Try_to_Take_Over_The_World. There is an interpreter called Brain.