Here is a code generation example using MDef (http://mdef.sourceforge.net): mdef program program-headers program-main mend mdef program-headers #include mend mdef program-main int main(int argc, char* argv[]) { program-body } mend mdef program-body printf("hello world\n"); return 0; mend program Save this to hello.m. Then type perl mdef.pl hello.m > hello.c gcc hello.c ./a.out This will print "hello world". Note that everything here is reusable except for the program-body.