5.4 Translator Software
5.4 Translator Software
5.4 Translator Software
Chapter 5
Language translators
The final type of system software that you need to know is translator software. This is software that allows
new programs to be written and run on computers, by converting source code (human readable) into
machine code. There are three types that we'll cover in a lot more detail shortly:
Interpreter - converts 3rd generation languages such as JavaScript into machine code one
line at a time
Compiler - converts 3rd generation languages such as C++ into machine code all at once
Assembler
An a ssembler t ranslates assembly language into machine code. Assembly language consists of
0T 0 T 0T 0 T
mnemonics for machine opcodes so assemblers perform a 1:1 ratio translation from mnemonic to a direct
instruction. For example:
L DA #4 c onverts to 0 001001000100100
30T 300TT 0 T 0T 03 0T
Conversely, one instruction in a high level language will translate to one or more instructions at machine
level.
Assembly code is often very efficient (and Assembly tends to be optimized for the
therefore fast) because it is a low level hardware it's designed for, meaning it is
language incompatible with different hardware
Assembly code is fairly easy to understand due Lots of assembly code is needed to do
to the use of English-like mnemonics relatively simple tasks, and complex programs
require lots of programming time
Computer Science 9608 (Notes)
Chapter: 1.5 System software
Compiler
A C ompiler i s a computer program that t ranslates code written in a high level language to a lower level
0T 0T 0T 0 T 0T 0 T 0T
language, object/machine code. The most common reason for translating source code is to create an
executable program (converting from a high level language into machine language).
I nterpreter
35T
An interpreter program executes other programs directly, running through program code and executing it
line-by-line. As it analyses every line, an interpreter is slower than running compiled code but it can take
less time to interpret program code than to compile and then run it — this is very useful when prototyping
and testing code. Interpreters are written for multiple platforms, this means code written once can be run
immediately on different systems without having to recompile for each. Examples of this include flash
based web programs that will run on your PC, MAC, games console and Mobile phone.
Useful for prototyping software and compiled programs due to the per-line
testing basic program logic translation method.
Computer Science 9608 (Notes)
Chapter: 1.5 System software
Language translators
Few of the high-level language programs may be partially compiled and partially interpreted, such as Java. Typical
Java environment consists of two programs: Java compiler and Java Virtual Machine. Java compiler takes the source
code written in Java programming language, together with precompiled libraries, and compiles programs written in
Java programming languages into class files containing Java byte-code.
The Java Virtual Machine takes the byte code prepared by the Java compiler and executes it. The byte-code itself is
platform-independent; it is the responsibility of the Java Virtual Machine implementation to execute the program in
the byte-code form on the real computer.
So, the java code is partially compiled for optimization by the programmer. The user runs the code on a Java virtual
machine on their computers that interprets the java code for the users' computer specific architecture.