A compiler is a software program that compiles program source code files into an executable program. Integrated development environments (IDEs) include compilers as part of their programming software packages.

The compiler takes source code files written in a high-level language, such as C, BASIC, or Java, and translates that code into a low-level language known as machine code. This code is specific to the selected processor type, such as an Intel x86-64 or ARM. The resulting program's underlying code is understood and executed by the processor when run from the operating system.

Some compilers add extra optimizations while they compile, making the program run faster at the cost of a longer compilation process. These optimizations can reduce or eliminate the amount of assembly code (a more-efficient low-level language) that a programmer needs to write, especially when compiling for processors with complex instruction sets.

Once a compiler compiles source code files into a program, the program cannot be modified. Therefore, a programmer must update the source code itself and recompile the program. Fortunately, most modern compilers can detect where changes were made and only recompile the modified files, which saves programmers a lot of time.

Updated February 9, 2023 by Brian P.

quizTest Your Knowledge

What type of file has a .7Z extension?

Compressed archive
Browser plug-in
Vector image
Correct! Incorrect!     View the Compression definition.
More Quizzes →

The Tech Terms Computer Dictionary

The definition of Compiler on this page is an original definition written by the team. If you would like to reference this page or cite this definition, please use the green citation links above.

The goal of is to explain computer terminology in a way that is easy to understand. We strive for simplicity and accuracy with every definition we publish. If you have feedback about this definition or would like to suggest a new technical term, please contact us.

Sign up for the free TechTerms Newsletter

How often would you like to receive an email?

You can unsubscribe or change your frequency setting at any time using the links available in each email.

Questions? Please contact us.