http://en.wikipedia.org/wiki/Source-to-source_compiler