Computer software that translates (compiles) source code written in a high-level language (e.g., C++ ) into a set of digital computer 's CPU .
Compilers are very large programs, with error-checking and other abilities. Some compilers translate high-level language into an intermediate assembly language , which is then translated (assembled) into machine code by an assembly program or assembler. Other compilers generate machine language directly.