<p>You may know, in early days when there was no memory, once the program was written, they(computer scientists) fed input to the machine using switches and levers. That is , there is no interface between human and a computer. In this case , only people who were scientists,researchers could operate the computers. It was not possible for a common man to know about it. Also , its very hard to learn,understand,handle those machine ,even to people who are scientist etc.
As there was no memory, they had to fed the same intruction( thru switches and levers) whenever they need to solve the same problem.After the memory was found, the programs were stored in the memory(physical memory of the machine or like RAM), and were executed. At this times, older input techinques were modified according to it. Later assembly language( Mnemonics ) were used write instructions and these instructions were then translated into voltages (machine level code). Here, The technique Abstraction was used to cover the complexity of interacting with hardware. Even though it made work easier than before. It was too somewhat difficult to write programs in assembly language since the commands are difficult to remember. Also , each processor had its own assembly language. So that program written for one processor could not be used in another. This increased the difficulty to remember commands for different machines. Also, a program called "assembler" that translates assembly language to machine code also differed from machine to machine. On those days, writing assemblers was a nightmare and was badly difficult to design and implement. In assembly language only one instruction took chance to be translated and executed. So, it consumed more time to execute a program. All these drawbacks stimulated computer scientists to think for the alternatives. On each stage of this improvement, inventions in physics,electronics, mathematics were also made to improve the components of the machine. These technological improvements also increased the neccessity to replace the older techniques.
This is like two persons who know different languages, are trying to communicate each other.<p>
<p>
Later, high level languages were found so that its commands are in simple english Words and can be remembered easily. It completely vanished the direct interaction with the hardware components. Its corresponding interface program is Interpreters/compilers( which is also a program) that translates the high level programs to the machine level code.
<p>
From the above discussion its clear that , in order to reduce the difficulties in communicating with the machine, one/more layer/s of abstraction is/are needed. That is, an intermediator is created and behaves as an interface between the programmer/user and the machine. This facilitates the programmer/user to interact with the machine and vice versa.So, Intended task is completed reliably and easily.
for example, its like a communication: English Speaker <--> Translator <--> French Speaker.
Also code written in High level language is optimized so that it keeps the size of the machine code small.
You can dig more under the titles : Compiler Design , The principles of programming languages.
Hope You got it.
Copyright © 2026 eLLeNow.com All Rights Reserved.