Computer Languages: Machine Language
Just as humans use language to communicate, and different regions have different languages, computers also have their own languages that are specific to them.
Different kinds of languages have been developed to perform different types of work on the computer. Basically, languages can be divided into two categories according to how the computer understands them.
Two Basic Types of Computer Language
- Low-Level Languages: A language that corresponds directly to a specific machine
- High-Level Languages: Any language that is independent of the machine
Low-level computer languages are either machine codes or are very close them. A computer cannot understand instructions given to it in high-level languages or in English. It can only understand and execute instructions given in the form of machine language i.e. binary. There are two types of low-level languages:
- Machine Language
- Assembly Language
(i) Machine Language
Machine language is the lowest and most elementary level of programming language and was the first type of programming language to be developed. Machine language is basically the only language that a computer can understand and it is usually written in hex.
In fact, a manufacturer designs a computer to obey just one language, its machine code, which is represented inside the computer by a string of binary digits (bits) 0 and 1. The symbol 0 stands for the absence of an electric pulse and the 1 stands for the presence of an electric pulse. Since a computer is capable of recognizing electric signals, it understands machine language.
Advantage of Machine language
- Machine language makes fast and efficient use of the computer.
- It requires no translator to translate the code. It is directly understood by the computer.
Disadvantage of Machine language
- All operation codes have to be remembered.
- All memory addresses have to be remembered.
- It is hard to amend or find errors in a program written in the machine language.
(ii) Assembly Language
Assembly language was developed to overcome some of the many inconveniences of machine language. This is another low-level but very important language in which operation codes and operands are given in the form of alphanumeric symbols instead of 0’s and l’s.
These alphanumeric symbols are known as mnemonic codes and can combine in a maximum of five-letter combinations e.g. ADD for addition, SUB for subtraction, START, LABEL etc. Because of this feature, assembly language is also known as ‘Symbolic Programming Language.’
This language is also very difficult and needs a lot of practice to master it because there is only a little English support in this language. Mostly assembly language is used to help in compiler orientations. The instructions of the assembly language are converted to machine codes by a language translator and then they are executed by the computer.
Advantage of Assembly language:
- Assembly language is easier to understand and use as compared to machine language.
- It is easy to locate and correct errors.
- It is easily modified.
Disadvantage of Assembly language:
- Like machine language, it is also machine dependent/specific.
- Since it is machine dependent, the programmer also needs to understand the hardware.
High-level computer languages use formats that are similar to English. The purpose of developing high-level languages was to enable people to write programs easily, in their own native language environment (English).
High-level languages are basically symbolic languages that use English words and/or mathematical symbols rather than mnemonic codes. Each instruction in the high-level language is translated into many machine language instructions that the computer can understand.
Advantage of High-level languages:
- High-level languages are user-friendly.
- They are similar to English and use English vocabulary and well-known symbols
- They are easier to learn.
- They are easier to maintain.
- They are problem-oriented rather than ‘machine’-based.
- A program written in a high-level language can be translated into many machine languages and can run on any computer for which there exists an appropriate translator.
- The language is independent of the machine on which it is used i.e. programs developed in a high-level language can be run on any computer text.
Disadvantage of High-level language:
- A high-level language has to be translated into the machine language by a translator, which takes up time.
- The object code generated by a translator might be inefficient compared to an equivalent assembly language program.