A programming language is any set of rules that converts strings, or graphical program elements in the case of visual programming languages, to various kinds of machine code output. Programming languages are one kind of computer language, and are used in computer programming to implement algorithms.
There are two types of Programming Languages
High Level Programming Language
Low-Level Programming Language
High Level Programming Language
High-level programming languages are problem-oriented rather than machine-oriented. High-level languages abstract many of the steps that the computer needs to take to solve the problem a program addresses. This makes them much easier for a wide range of people to use than assembly languages. High-level programs must be translated before they can be run (executed).
Below are the types of High Level Programming Language:
Object Oriented Programming Language
1. Procedural Language
A procedure is a sequence of instructions having a unique name. The instructions of the procedure are executed with the reference of its name. In a procedural language, a program is designed using procedures. In procedural programming languages, the program instructions are written in a sequence or in a specific order in which they must be executed to solve a specific problem. It means that the order of program instructions is very important.
Some popular procedural languages are described below:
FORTRAN it stands for formula translation. It was developed in 1957 for IBM computers. It was the first earliest high level programming language used to introduce the concept of modular programming. It has been revised many times. Its commonly used version is FORTRAN 77
COBOL - it stands for common business oriented language. It was developed in 1959. this high-level language was specially developed for business and commercial applications. It was suitable for handling large amount of data such as:
To prepare payroll
To process credit and debit account
To control inventory system and many other business applications
Pascal - this programming language is named in the honour of Blaise Pascal, a mathematician and scientist who invented the first mechanical calculator. Structured programming language and is popular in computer science development in 1971. It is suitable for scientific field.
ADA - it is developed in 1980 and is named in the honour of Lady Augusta ADA. She was the first computer programmer. The high level structure language Pascal was used as a model for the development of ADA language. This language is mainly used for defence purposes such as for controlling military weapons like missiles etc.
C language - Dennis Ritchie and Brian Karnighan developed it in 1972 at Bell Laboratories. It is a high level language but it can also support assembly language codes (low level codes). It is because, C language is also referred to as middle level language. The program written in C can be compiled and run on any type of computer. In other words programs written in C language are portable. C language is a structured programming language. The main feature of C language is that, it uses a large number of built-in functions to perform various tasks. The user can also creates its own functions.
2. Non Procedural Languages
Non procedural programming languages are also known as fourth generation languages. In non procedural programming languages, the order of program instructions is not important. Ihe importance is given only to, what is to be done.
With a non procedural language, the user/programmer writes English like instructions to retrieve data from databases. These languages are easier to use than procedural languages. These languages provide the user-friendly program development tools to write instructions. The programmers have not to spend much time for coding the program.
The most important non procedural languages and tools are discussed below:
SQL (Structural Query Language) - It is very popular database access language and is specially used to access and to manipulate the data of databases. The word query represents that this language is used to make queries (or enquiries) to perform various operations on data of database. However, SQL can also be used to create tables, add data, delete data, update data of database tables etc.
LISP (List Processing) - Lisp is a programming language that has an overall style that is organized around expressions and functions. Every Lisp procedure is a function, and when called, it returns a data object as its value. It is also commonly referred to as “functions” even though they may have side effects. Lisp is the second-oldest high-level programming language in the world which is invented by John McCarthy in the year 1958 at the Massachusetts Institute of Technology.
PROLOG - Prolog is a logic programming language. It has important role in artificial intelligence. Unlike many other programming languages, Prolog is intended primarily as a declarative programming language. In prolog, logic is expressed as relations (called as Facts and Rules). Core heart of prolog lies at the logic being applied. Formulation or Computation is carried out by running a query over these relations.
3. Object Oriented Programming Languages
In object oriented programming, the software is developed by using a set of interfacing object. An object is a component of program that has a set of modules and data structure. The modules are also called methods and are used to access the data from the object. The modern technique to design the program is object oriented approach. It is a very easy approach, in which program designed by using objects. Once an object for any program designed, it can be re-used in any other program.
Object-oriented programming language include:
Advantages of High Level Programming Language:
There are several advantages of high level programming languages. The most important advantages are:
Easy to learn - the high level languages are very easy to learn than low level languages. The statements written for the program are similar to English-like statements.
Easy to understand - the program written in high level language by one programmer can easily be understood by another because the program instructions are similar to the English language.
Easy to write program - in high level language, a new program can easily be written in a very short time. The larger and complicated software can be developed in few days or months.
Easy to detect and remove errors - the errors in a program can be easily detected and removed. mostly the errors are occurred during the compilation of new program.
Built-in library functions - Each high level language provides a large number of built-in functions or procedures that can be used to perform specific task during designing of new programs. In this way, a large amount of time of programmer is saved.
Machine Independence - program written in high level language is machine independent. It means that a program written in one type of computer can be executed on another type of computer.
Limitation of High Level Programming Language:
There are two main limitation of high level languages are:
Low efficiency - a program written in high level languages has lower efficiency than one written in a machine/assembly language to do the same job. That is, program written in high level languages result in multiple machine language instruction that may not be optimize, taking more time to execute and requiring more memory space.
Less flexibility - high level languages are less flexible than assembly languages because they do not normally have instructions or mechanism to control a computer's CPU, memory and register.
Low Level Programming Language
Low-level languages are specific to the instruction set of the processor and are defined by the processor manufacturer. This makes code written in low-level languages non-portable, meaning it can only be run on a processor of the same type that it was written for. You can describe these languages as machine-oriented.
Below are the types of Low Level Programming Language:
1. Machine Language
Machine language is the low level programming language. Machine language can only be represented by 0s and 1s. In earlier when we have to create a picture or show data on the screen of the computer then it is very difficult to draw using only binary digits(0s and 1s). For example: To write 120 in the computer system its representation is 1111000. So it is very difficult to learn. To overcome this problem the assembly language is invented.
Advantage of Machine Language
the program of machine language runs very fast because no translation program is required for the CPU.
Disadvantage of Machine Language
Here are some of the main disadvantages of machine languages:
Machine Dependent - the internal design of every computer is different from every other type of computer, machine language also differs from one computer to another. Hence, after becoming proficient in the machine language of one type of computer, if a company decides to change to another type, then its programmer will have to learn a new machine language and would have to rewrite all existing program.
Difficult to Modify - it is difficult to correct or modify this language. Checking machine instructions to locate errors is very difficult and time consuming.
Difficult to Program - a computer executes machine language program directly and efficiently, it is difficult to program in machine language. A machine language programming must be knowledgeable about the hardware structure of the computer.
2. Assembly Language
Assembly language is the more than low level and less than high-level language so it is intermediary language. Assembly languages use numbers, symbols, and abbreviations instead of 0s and 1s.For example: For addition, subtraction and multiplications it uses symbols likes Add, sub and Mul, etc.
Advantage of Assembly Language
Here are some of the main advantages of using assembly language:
Easy to understand and use - due to the use of mnemonic instead of numeric op-codes and symbolic names for data location instead of numeric addresses, it is much easier to understand and use in contrast with machine language.
Easier to locate and correct errors - the programmers need not to keep track of storage location of the data and instruction, fewer errors are made while writing programs in assembly language and those that are made, are easier to find and correct.
Easy to modify - assembly language are easier to understand, it is easier to locate, correct and modify instruction of an assembly language program.
Efficiency of machine language - an assembly language program will be just as long as the resulting machine language program. Hence, leaving out the translation time required by the assembler, the actual execution time for an assembly language program and its equivalent machine language program.
Disadvantage of Assembly Languages
And here are some of the main disadvantages of using assembly language:
Machine dependent - each instructions of assembly language program is translated into exactly one machine language instruction, an assembly language programs are dependent on machine language.
Knowledge of hardware required - assembly languages are machine dependent, an assembly language programmer must have a good knowledge of characteristics and logical structure of his/her computer to write a good assembly language computer code.
Machine level coding - assembly language instruction is substituted for one machine language instruction. Hence like machine language programs, write assembly language program is also time consuming and difficult.
Difference Between Machine Language and Assembly Language
In machine language data only represented with the help of binary format(0s and 1s), hexadecimal and octadecimal.
In assembly language data can be represented with the help of mnemonics such as Mov, Add, Sub, End etc.
Machine language is very difficult to understand
Assembly language is easy to understand
Modifications and error fixing cannot be done in machine language.
Modifications and error fixing can be done in assembly language.
Machine language is hardware dependent.
Assembly language is the machine dependent and it is not portable.
Execution is fast in machine language because all data is already present in binary format.
Execution is slow as compared to machine language.
Difference Between Procedural and Non-Procedural Language
A procedure is a sequence of instructions having a unique name. The instructions of the procedure are executed with the reference of its name.
In non procedural programming languages, the order of program instructions is not important. Ihe importance is given only to, what is to be done.
It is known as Command-driven Language
It is known as Applicative or functional Language
It returns restricted data types and certain allowed values only.
It has the ability to return any datatype or value.
The overall efficiency is high.
The overall efficiency of non-procedural language is low in comparison to procedural language.
It is not suited for applications where time is a critical constraint
It is well-suited for applications where time is a critical factor.
Examples of procedural languages include BASIC, FORTRAN, ALGOL, C, COBOL, and Pascal.
Examples of non-procedural languages include LISP, SQL, PROLOG.
The iterative loops and recursive calls are used while working in procedural languages.
Recursive calls are used while working with non-procedural languages
The size of program is large
The size of program is small
It works with the state of machine.
It works with the help of mathematical functions.
The Tech Platform