Developers normally describe the task they want to accomplish using a programming language. However, the CPU cannot understand source code written in a normal programming language. First, the source code has to be translated into machine code, which is the language the CPU speaks. This translation is done by special programs called compilers. A compiler creates a file, often called an executable, with machine-level instructions that the CPU can understand and execute.