Compiler

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.

Definitions by TechTerms.com

The definition of Compiler on this page is an original TechTerms.com definition. If you would like to reference this page or cite this definition, you can use the green citation links above.

The goal of TechTerms.com 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 the Compiler definition or would like to suggest a new technical term, please contact us.

Want to learn more tech terms? Subscribe to the daily or weekly newsletter and get featured terms and quizzes delivered to your inbox.

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.