Something which comes before a compiler. It takes a file containing source code and produces another file, also containing only source code, which can then be read by the compiler. An example is the Oracle precompiler for Pro*Cobol. Another example is the C precompiler, which reads a C source file, incorporates header files, expands macros, removes comments, etc.