Updated Oct 18, 2020 · 6 min read

What is a compiler?

A compiler is a software program that processes statements written in a high-level programming language like Java or C and turns them into machine language that a computer processor understands. This process of turning code written in a programming language into machine language is called compiling code. Compilers are typically included in the integrated development environment (IDE) that programmers use to build software packages.

Compiler simplified

As an analogy, let’s say the only language you know how to speak is English. However, you need to complete an exam in French. Instead of trying to complete the exam in French, you write the exam in English and, before you hand the exam into your professor, you translate your answers into French. That way, your French-speaking professor can grade the exam.

The compiler is a lot like the translator. Computers only understand binary language, which are 0s and 1s, while programmers only want to write in programming languages like Java or C. The computer doesn’t directly understand the code that the programmer writes, so a compiler helps with translating the code from the programmer into the binary language.

Without the compiler, programmers would need to write in binary language, just as the English-speaking student would need to write in French without the translator.

Compiler vs. interpreter

Both compilers and interpreters translate code written in a programming language into machine code. The difference is that a compiler coverts code into machine code before the program runs, while an interpreter coverts code into machine code while the program runs.

Compiled code runs faster than interpreted code because the code is ready to execute. However, the compiler only tells a developer of an error after compilation, while the interpreter displays errors line by line. In this way, writing code using an interpreter can be easier to troubleshoot, especially for newer developers.

Modifying code

Once the compiler translates (or compiles) code into an executable program written in 0s and 1s, the programmer can’t modify the program. If the programmer decides they want to make some changes, they need to recompile the code. But many modern compiler can detect the changes and recompile only the modifications. This can save programmers a lot of time.

Related Terms

Programming Languages

A programming language is a formal set of rules along with a unique syntax for instructing a computer to perform tasks.


A server is a computer that provides a service (such as providing data) to other computers and its users, known as the clients.