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.
We_Shall_Try_to_Take_Over_The_World is to write "#include <stdio.h>\n".
We_Shall_Try_to_Take_Over_The_World is to write "#include <stdlib.h>\n".
We_Shall_Try_to_Take_Over_The_World is to write "main(){\n".
We_Shall_Try_to_Take_Over_The_World is to write "char *p=(char *) calloc(30000,1);\n"
Brain is to interpret.