Differentiate between compiler and interpreter

Interpreter Compiler
It is a program that reads line-by-line a program written in a language; in source language and translate it to an intermediate code, to execute it. It is a program that fully reads a program written in a language; the source language, and translates it into a program equivalent to another language, object language.
An interpreter translates the program when you read it, converting the program code directly into actions. A program that has been compiled can run on its own, because in the compilation process it is transformed into another language (machine language).
The advantage of the interpreter is that given any program can be interpreted in any platform (operating system). The file generated by the compiler only works on the platform where it was created.
Does not generate an executable A compiled file can be easily distributed knowing the platform, whereas an interpreted file does not work if the interpreter is not available.
The translation process is performed at each execution Speaking of the speed of execution a compiled file is 10 to 20 times faster than an interpreted file.
The execution is slower, since for each line of the program it is necessary to make the translation Generates an executable
There is no executable, so if there is an interpreter for a particular platform, the program can run on both. Typically, interpreted programs are much more portable than compiled ones, since there are often interpreters of the same language on different platforms. The programs to be interpreted are usually not very dependent on their target platform, being more portable. The translation process is done only once
Interpreted languages ??are usually not very dependent on the target platform, but in return they are often less flexible and powerful than compiled ones. The execution is very fast because the program has already been translated into machine code
The source code is required at each execution, so it can not be kept secret The executable is directed to a concrete platform (a CPU, an operating system, and perhaps some other consideration), being practically impossible to carry it to another. Sometimes, if there is a compiler for another platform, the program can be recompiled, although this usually poses serious difficulties. The programs to be compiled are usually closely linked to the target platform.
Syntactic errors are detected during execution, since translation and execution are done simultaneously. Some syntactic error could be masked, if for a concrete execution it is not necessary to translate the line that contains it. (Some interpreters are able to avoid this) The compiled languages ??usually provide the programmer with more powerful and flexible mechanisms, at the cost of a greater connection to the platform.
A program interpreted with clumsy behavior can usually be interrupted without difficulty, since its execution is under the control of the interpreter, and not only of the operating system. Once compiled the program, the source code is not necessary to run it, so it can remain secret if desired.
Syntax errors are detected during compilation. If the source contains syntactic errors, the compiler will not produce an executable.
A compiled program can, by mistake, seriously affect the stability of the platform, compromising the execution of other processes, for example, hogging the CPU, memory or some other resource, sometimes being difficult for the operating system to interrupt its execution .

What is the difference between venlafaxine and duloxetine?

Differentiate between recruitment and selection