A programming language is like any other language. It has its own vocabulary and rules of grammar (syntax). Instead of facilitating communication between two people, a programming language allows humans to write commands understood by the computer. Because the computer only understands one language (called machine language), the programming code must be translated into machine language before the computer can execute the commands.
Programming languages fall into two categories, depending on how they are translated into machine language:
Compiled languages are translated into machine language all at once. The programmer writes the code, then runs a program (called a compiler) which translates the code. An advantage of programs written in a compiled language is that they run quickly, because the computer can get all of its instructions at once. However, these languages are usually difficult to learn. Also, testing can be tedious, because the program has to be compiled in its entirety before testing, making it difficult to pinpoint which part of the code is causing the problem. Examples of compiled languages include:
Interpreted languages are translated into machine language step-by-step. This makes execution of the program slower, because the computer has to wait for each instruction to be translated. However, these languages are easier to write and test because each step of the process can be tested independently. Examples of interpreted languages include: