There is such a thing as an interpreter. A interpreter can interpret. 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. I have a phrase called Take_Over. Narf is to readOne Poit. The_World's first operand is Poit. The_World's second operand is "+". If Narf says it's done then Troz is to write "}\nmain\n". If Narf says it's done then I am to quit. The_World is to compare. If The_World says it's equal then Troz is to write "incr memory($pointer)\n". The_World's second operand is "-". The_World is to compare. If The_World says it's equal then Troz is to write "decr memory($pointer)\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 {$memory($pointer)} != 0} {\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 "incr pointer\n". The_World's second operand is "<". The_World is to compare. If The_World says it's equal then Troz is to write "decr pointer\n". The_World's second operand is ".". The_World is to compare. If The_World says it's equal then Troz is to write "set memory($pointer) [getchar]\n". The_World's second operand is ",". The_World is to compare. If The_World says it's equal then Troz is to write "puts -nonewline $memory($pointer)\n". I am to loop.