Thursday, September 24, 2020

Programming Languages

Programming Languages


A programming language defines a set of instructions that are compiled together to perform a specific task by the CPU (Central Processing Unit).

The programming language mainly refers to high-level languages such as C, C++, Pascal, Ada, COBOL, etc.

Each programming language contains a unique set of keywords and syntax, which are used to create a set of instructions. These languages vary in the level of abstraction they provide from the hardware.  Some programming languages provideless or no abstraction while some provide higher abstraction.

Based on the levels of abstraction, they can be classified into two categories:

  • Low-level language

  • High-level language

Assembly language provides less abstraction whereas high-level language provides a higher level of abstraction.

Low-level language

The low-level language is a programming language that provides no abstraction from he hardware, and it is represented in 0 or 1 forms, which are the machine instructions. The languages that come under this category are the Machine level language and Assembly language.

a.     Machine-level language

The machine-level language is a language that consists of a set of instructions that are in the binary form 0 or 1. As we know that computers can understand only machine instructions, which are in binary digits, i.e., 0 and 1, so the instructions given to the computer can be only in binary codes. Creating a
program in a machine-level language is a very difficult task as it is not easy for the programmers to write the program in machine instructions. It is error-prone as it is not easy to understand, and its maintenance is also very high. A machine-level language is not portable as each computer has its machine instructions, so if we write a program in one computer will no longer be valid in another computer.

The different processor architectures use different machine codes, for example, a PowerPC processor contains RISC architecture, which requires different code than intel x86 processor, which has a CISC architecture.

b.      Assembly Language

The assembly language contains some human-readable commands such as mov, add, sub, etc. The problems which we were facing in machine-level language are reduced to some extent by using an extended form of machine-level language known as assembly language. Since assembly language instructions are written in English words like mov, add, sub, so it is easier to write and understand.

As computers can only understand the machine-level instructions, a translator is required to convert the assembly code into machine code. The translator used for translating the code is known as an assembler.

The assembly language code is not portable because the data is stored in computer registers, and the computer has to know the different sets of registers.

The assembly code is not faster than machine code because the assembly language comes above the machine language in the hierarchy, so it means that assembly language has some abstraction from the hardware while machine language has zero abstraction.

The following are the differences between machine-level language and assembly language:



Machine-level language



Assembly language



The machine-level language comes at the lowest level in the hierarchy, so it has zero abstraction level from the hardware.



The assembly language comes above the machine language means that it has less abstraction level from the hardware.



It cannot be easily understood by humans.



It is easy to read, write, and maintain.



The machine-level language is written in binary digits, i.e., 0 and 1.



The assembly language is written in simple English language, so it is easily understandable by the users.



It does not require any translator as the machine code is directly executed by the computer.



In assembly language, the assembler is used to convert the assembly code into machine code.



It is a first-generation programming language.



It is a second-generation programming language.




 















High-Level Language

The high-level language is a programming language that allows a programmer to write the programs which are independent of a particular type of computer. The high-level languages are considered as high-level because they are closer to human languages than machine-level languages.

A compiler is required to translate a high-level language into a low-level language.

Advantages of a high-level language

  • The high-level language is easy to read, write, and maintain as it is written in English like words.

  • The high-level languages are designed to overcome the limitation of low-level language, i.e., portability. The high-level language is portable; i.e., these languages are machine-independent.

o    The following are the differences between low-level language and high-level language:



Low-level language



High-level language



It is a machine-friendly language, i.e., the
computer understands the machine language, which is represented in 0 or 1.



It is a user-friendly language as this
language is written in simple English words, which can be easily understood
by humans.



The low-level language takes more time to
execute.



It executes at a faster pace.



It requires the assembler to convert the
assembly code into machine code.



It requires the compiler to convert the
high-level language instructions into machine code.



The machine code cannot run on all machines,
so it is not a portable language.



The high-level code can run all the platforms,
so it is a portable language.



It is memory efficient.



It is less memory efficient.



Debugging and maintenance are not easier in a
low-level language.



Debugging and maintenance are easier in a
high-level language.


0 comments:

Post a Comment

Data Structures with C++



NET/SET/CS PG



Operating Systems



Computer Networks



JAVA



Design and Analysis of Algorithms



Programming in C++

Top