What is a Compiled Language?

Computers are only capable of executing machine language, which is the language of the central processing unit (CPU) and is very simple. The goal of any programming language implementation is to translate a source program into the machine language so it can be executed by the CPU. All language implementations translate a source program into some intermediate representation before translating the intermediate representation to machine language. The most direct method of translating a program to machine language is called compilation. A program written in a compiled language must be converted into a different format before it is run. The source code must be transformed into machine-readable instructions prior to execution. In short, the languages whose implementations are typically compilers and not interpreters are called compiled languages.

What is an Interpreted Language?

An interpreter is a program that is written in some other language and compiled into machine-readable language. The interpreter itself is the machine language program and is written to read source programs from the interpreted language and interpret them. An interpreted language, on the contrary, does not compile the source code into machine language prior to running the program. It merely interprets the code on the fly. So, you don’t get the benefits or drawbacks of compilation errors. Interpreted languages require a piece of software called an interpreter, which takes the source code and executes one instruction at a time. When you run an interpreted source program, you actually run the interpreter. The interpreter is the machine language program that executes all the programs you write in the interpreted language.

Difference between Compiled and Interpreted Language

1. Basics of Compiled and Interpreted Language

– A program written in a compiled language must be converted into a different format before it is run. The source code must be transformed into machine readable instructions prior to execution. An interpreted language, on the contrary, does not compile the source code into machine language prior to running the program. It merely interprets the code on the fly. Interpreted languages require a piece of software called an interpreter, which takes the source code and executes one instruction at a time.

2. Compiler vs. Interpreter

– With compiled languages, there are at least two steps to get from source code to execution, while with interpreted languages, there is only one – execution. A program written in an interpreted language is not compiled – it is interpreted by another program while it runs. A program written in a compiled language goes through a process to change it from its human-readable text format into a machine-readable format. A program called a compiler makes this transition.

3. Usability

– Compiled programs run faster than interpreted programs, but interpreted programs can be modified while the program is running. This makes interpreted programs ideal for writing live performance software. Working with compiled languages can be nice because many bugs are found when source code is compiled. These bugs, called compilation errors prevent the code from compiling. On the contrary, interpreted languages are not compiled, so you don’t get the benefits or drawbacks of compilation errors.

 
4. Debugging

– With interpreted languages, all the debugging occurs at run-time. There is no compilation step during which you can cast out all the syntax errors in your code; instead you have to run the program to find any errors in it. This becomes a problem when you interpreted program modifies files, or makes any changes to permanent resources. This makes some bugs harder to catch because the code does not need to compile. Interpreted languages also present some security concerns in the online environment as malicious code can be injected mid-execution.



Credit to: http://www.differencebetween.net/technology/difference-between-compiled-and-interpreted-language/#ixzz71dfR9MvH