Search This Blog

Friday, 18 May 2012

Need for Translators in Porgramming!

0 comments


THE ROLE OF A TRANSLATOR!

The Role of a Translator
A translator is a program that takes as input a program written in one programming language (the source language) and produces as output a program in another language (the object or target language). If the source language is a high-level language such as FORTRAN, PL/1 or COBOL and the object language is a low-level language such as an assembly language or machine language, then such a translator is called a Compiler.

 The first step involved in executing a program written in a high-level language is to translate or compile the source program into an object program. Then the resulting object program is loaded into memory for execution.
Types of Translators

Interpreter: Interpreter is a translator that transforms a source program written in a high level language into an object program containing intermediary code.  The intermediate code is then executed by the interpreter.  In some cases, the source language itself can be an intermediate language.  In that case, the interpreter executes the statements written in the source program line by line.
Interpreters are often smaller than compilers and facilitate the implementation of complex programming language constructs.  However, the main disadvantage of interpreter is that the execution time of an interpreted program is usually slow than that of a corresponding compiled object program.

Preprocessor: Preprocessors are one kind of translators that take programs is one high level language and produce equivalent programs in another high level language.  For example there are many FORTRAN preprocessors that map ‘structured’ versions of FORTRAN into conventional FORTRAN.

Assembler: An assembler is a translator, which takes an assembly language program as input and converts it into a machine language program.

Need for Translators

Using machine language, programmers communicate directly with the computer in terms of bits, registers and very primitive machine operations. The instructions are given in the form of 0’s and 1’s.   This makes programming a tedious and time consuming task when the complexity of the algorithm is increased.

All operations and operands are specified in a numeric code and hence, the programs written in machine language are cryptic. This makes the code impossible to modify in a convenient manner.

Symbolic Assembly Language

In an assembly language, we use mnemonic names for both operation codes and data addresses.  For example,

ADD X,Y

is an assembly language instruction for adding the content of X and Y registers. Such programs are easier to write and understand than machine language programs. Because, numeric codes for addresses and operations (in machine language) are replaced with more meaningful symbolic codes.

A computer however, can’t execute a program written in assembly language. That program has to be first translated to machine language, using a program called assembler. The major drawback of writing programs in assembly language is that the programmer must be intimately concerned with how and where data is represented within the machine.

High-Level Programming Language

A High-Level programming language allows a programmer to express algorithms in a more natural notation that avoids many of the details of how a specific computer functions. For example “A+B” is an expression in a high-level language that instructs a computer to add the contents of variables A and B. COBOL, FORTRAN, PL/1, ALGOL, SNOBOL, APL, PASCAL, LISP and C are some of the more common high-level languages.

A high-level language makes the programming task simpler, but requires a program to translate its code to the corresponding machine code for its execution.

Leave a Reply