Source-to-source compiler
From Wikipedia, the free encyclopedia
A "source-to-source compiler" is a type of compiler that takes a high level language as its input and outputs a high level language. For example, an automatic parallelizing compiler will frequently take in a high level language program as an input and then transform the code and annotate it with parallel code annotations (e.g. OpenMP) or language constructs (e.g. Fortran's DOALL statements).
Another purpose of source-to-source-compiling is translating legacy code to use the next version of the underlying programming language or an API that breaks backwards compatibility. Examples of this are seen in Python 3000 or Qt's qt3to4 tool.