Difference between revisions of "Programming Language Translators"
(→Compiler vs Interpreter) |
(→Compiler over Interpreter) |
||
Line 10: | Line 10: | ||
=Compiler vs Interpreter= | =Compiler vs Interpreter= | ||
===Compiler over Interpreter=== | ===Compiler over Interpreter=== | ||
− | Object code is saved, so you only need to compile once so no need to re-compile. Obviously if the code is changed it will need to be re-compiled. | + | *Object code is saved, so you only need to compile once so no need to re-compile. Obviously if the code is changed it will need to be re-compiled. |
− | Executes faster than interpreted code, because interpreted code is interpreted and execute one at a time. Compiled code is simply executed. | + | *Executes faster than interpreted code, because interpreted code is interpreted and execute one at a time. Compiled code is simply executed. |
− | Object code can be distributed (without the compiler). | + | *Object code can be distributed (without the compiler). |
− | Secure because the source code is hidden, the compiler generated object code is not easily reverse engineered. | + | *Secure because the source code is hidden, the compiler generated object code is not easily reverse engineered. |
− | Compilers can be more efficient, for example an interpreter must interpret and then execute each time it passes through a loop. Compiled code can just execute each time through the loop. | + | *Compilers can be more efficient, for example an interpreter must interpret and then execute each time it passes through a loop. Compiled code can just execute each time through the loop. |
===Interpreter over Compiler=== | ===Interpreter over Compiler=== |
Revision as of 17:11, 22 May 2017
Contents
Assembler
An assembler translates assembly language into machine code. One line of assembler will create a single line of machine code, because the assembler mnemonic is converted into the binary instruction.
Compiler
A compiler translates code written in a high level programming language into object code, the machine code of a particular machine. It 'compiles' the entire source code before translating it. The compiler has several advantages over interpreters, such as: the object code is saved, meaning there is no need to re-compile; compiled code executes faster than interpreted code; the object code can easily be distributed without the compiler; and compiled code is more secure, as it is harder to reverse engineer than interpreted code.
Interpreter
An interpreter also translates code written in a programming language into object code, but unlike a compiler it does this one line of code at a time. This makes it slower to run than a compiler, but interpreters are useful for partially testing or debugging programs.
Compiler vs Interpreter
Compiler over Interpreter
- Object code is saved, so you only need to compile once so no need to re-compile. Obviously if the code is changed it will need to be re-compiled.
- Executes faster than interpreted code, because interpreted code is interpreted and execute one at a time. Compiled code is simply executed.
- Object code can be distributed (without the compiler).
- Secure because the source code is hidden, the compiler generated object code is not easily reverse engineered.
- Compilers can be more efficient, for example an interpreter must interpret and then execute each time it passes through a loop. Compiled code can just execute each time through the loop.
Interpreter over Compiler
Easier to partially test or debug programs, it will run until an error is reached. This will therefore allow you to test code that you haven't completely finished.