Difference between revisions of "Programming Language Translators"

From TRCCompSci - AQA Computer Science
Jump to: navigation, search
(Compiler vs Interpreter)
Line 9: Line 9:
  
 
=Compiler vs Interpreter=
 
=Compiler vs Interpreter=
Compiler over Interpreter
+
===Compiler over Interpreter===
Object code is saved, no need to re-compile
+
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
+
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 (object code not easily reverse engineered)
+
Secure because the source code is hidden, the compiler generated object code is not easily reverse engineered.
Interpreter over Compiler
+
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.
Easier to partially test or debug programs
+
 
Also an interpreter must interpret each time it passes through a 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.
  
 
=Object Code=
 
=Object Code=

Revision as of 18:11, 22 May 2017

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.

Object Code

Machine Code

Byte Code