Difference between an Interpreter and a Translator in Programming
Key difference: A translator is a type of computer program that serves a particular purpose. As its name suggests a translator translates code from one programming language to another. There are two types of translators that are commonly used: compiler and interpreter. An interpreter does the same thing as a translator, except that it is specifically used to interpret programs in high-level language to low-level language.
Programming can be quite a difficult subject, especially for people who have no background for the subject, or are just starting out. Still, there are a number of concepts that can be confusing even to people who have been programming for a while. One such concept is the difference between an Interpreter and a Translator? What makes them different from each other? Why are they used? Let’s find out.
A translator is a type of computer program that serves a particular purpose. As its name suggests a translator translates code from one programming language to another. For example, if one wants to translate some code from C++ into another language, such as C then they can use a translator.
The primary function of a translator is to translate a program from high-level language into equivalent machine language. In addition to translating, a translator also provides diagnostic messages wherever the programmer violates specification of the high-level language program. Hence, these diagnostic messages can be used to correct the programming to ensure that it works, the way it is supposed to.
There are two types of translators that are commonly used: compiler and interpreter. An interpreter does the same thing as a translator, except that it is specifically used to interpret programs in high-level language to low-level language. Hence, it is primarily used by languages such as Python, BASIC, and Ruby.
An interpreter performs three main functions. It can parse the source code and perform its behavior directly. Additionally, it can translate the source code into some efficient intermediate representation and immediately execute it. It can also explicitly execute stored precompiled code that is made by a compiler.
However, as compared to a compiler, an interpreter is fairly slow in execution. The reason behind this is the fact that it translates each statement one at a time, whereas the compiler translates the whole thing together. Still, the interpreter tends to effectively utilize memory usage as it does not generate intermediate object code, whereas a compiler does. Hence, its memory usage is not as efficient.
Additionally, debugging is easier in an interpreter than in a compiler as the interpreter stops the translation when the first error is met. Hence, each error can be corrected, before moving on with the program. A compiler reports errors after the whole program is checked, which can be it a bit tedious to pinpoint errors. Also, an interpreter also gives better error diagnostics than a compiler.
Comparison between an Interpreter and a Translator in Programming:
|
Interpreter |
Translator |
Purpose |
High-level language to low-level language |
To convert code from one language to another |
Type |
Is a type of translator |
Has two types: Compiler and Interpreter |
Execution |
Execution is slower |
Compiler has a faster execution than an interpreter |
Memory usage |
Memory usage is efficient as no intermediate object code is generated. |
Compiler requires more memory as compared to an interpreter. |
Object code |
No intermediate object code is generated |
Compiler generates intermediate object code, whereas interpreter does not. |
Debugging |
Stops translation when the first error is met. Hence, debugging is easy. |
Debugging is easier in interpreter than in a compiler |
Diagnostics |
Gives better error diagnostics than a compiler |
Can give error diagnostics when it runs across one during translation |
Languages |
Python, BASIC, and Ruby |
Python, BASIC, and Ruby use an Interpreter, whereas C and C++ use compilers. |
Reference: Wikipedia (Interpreter and Translator), eComputerNotes, Programiz, Tech Welkin Image Courtesy: bbc.co.uk, opensourceforgeeks.blogspot.in
Comments
Ali
Sun, 11/05/2017 - 10:31
Add new comment