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.