At the end of this lesson-
1. You will be able to describe programming languages of different generations.
2. You will be able to describe programming languages of different levels.
3. You will be able to explain characteristics, advantages and disadvantages of machine language.
4. You will be able to explain characteristics, advantages and disadvantages of assembly language.
5. You will be able to explain characteristics, advantages and disadvantages of High level programming language.
Go for Bangla Version
A computer system usually has two parts. One is hardware and the other is software. Hardware is a variety of computer equipment such as monitors, hard disks, motherboards, processors, RAM, ROM, etc. On the other hand, Software is a collection of programs that control hardware. Hardware without software is like a lifeless body.
Program: A program is a collection of step by step instructions written by a programmer in a programming language to solve a particular problem by machine.
At the beginning of the invention of the computer, there was no concept of program. On that time any problem were solved by giving sequence of 0 and 1 as inputs.
Programming Language: The language which is used to give instructions to the machine to solve a particular problem is called programming language.
Simply, The languages that are used to write a program or set of instructions are called “Programming languages”.
In other words, A programming language is a set of vocabulary and grammatical rules for instructing a computing device or machine to perform specific tasks.
The computer cannot understand anything except 0 and 1. All instructions have to be given through these 0 and 1. It is called mechanical language. Machine language is the mother tongue of computer. This language is difficult for people to understand. So later different types of programming languages have emerged.
The programming languages such as BASIC, C, C++, COBOL, Java, FORTRAN, Ada, Pascal etc.
Programmer: A programmer, developer (“dev”), coder, or software engineer is a person who writes program in a programming language to solve a particular problem by machine.
Ada Loveless (daughter of Lord Byron, a London-based poet) wrote the first program to solve various problems in Charles Babbage’s Analytical Engine. That’s why Ada Augusta is considered the world’s first computer programmer. ADA Programming Language is named after him.
Programming: Giving instructions to a machine using a programming language is called programming. In other words, The process or technique of developing and implementing various sets of instructions to enable a computer to do a certain task is called programming.
Types of Programming Language:
Programming languages invented from 1945 to today are divided into five generations according to their features. They are-
1. First Generation(1945)
-Machine Language
2. Second Generation(1950)
-Assembly Language
3. Third Generation(1960)
-High Level Language
4. Fourth Generation(1970)
-Very High Level Language
5. Fifth Generation(1980)
-PROLOG, LISP, Mercury, Natural Language
Again, Programming languages can be divided into five levels based on their characteristics of program development:
1. Low Level Language
-Machine Language, Assembly Language
2. Mid Level Language
C, C++, JAVA, Forth, Dbase, WordStar etc.
3. High Level Language
-Fortran, Basic, Pascal, Cobol, C, C++, Visual Basic, Java, Oracle, Python etc.
4. Very High Level Language- 4GL
-SQL
First Generation Language (1GL):
Machine Language:
The language in which only 0 and 1 are used to write a program is called machine language. This is the basic language of computers or any computing devices. Machine language is the only language a computer is capable of understanding. Using this language it is possible to communicate with computers directly.
Machine language is first generation and low-level programming language. This language is called low-level language because it is directly related to hardware. The program written in machine language is called object program.
A program written in Machine Language to add two numbers-
Advantages of Machine Language:
1. It is directly understood by the computer. That’s why it is possible to communicate with computers directly.
2. The main advantage is that program of machine language run very fast because no translator program is required for the CPU.
3. Program written in machine language needs less memory to run.
Disadvantages of Machine Language:
1. It is very difficult to learn and program in machine language as only 0 &1 are used.
2. A program written in machine language is almost impossible to understand by human.
3. It takes more time to write a program in machine language and It is difficult to debug the program.
4. This language is machine dependent. That means a program written for one computer might not run in other computers with different hardware configuration.
5. The programmer has to know details of hardware to write a program in machine language.
6. All operation codes have to be remembered.
7. All memory addresses have to be remembered.
Second Generation Language (2GL):
Assembly Language:
The language in which different mnemonics are used to write a program is called assembly language. In this language alphanumeric symbols are used to write programs 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, DIV for division,MUL for multiplication etc. Because of this feature, assembly language is also known as ‘Symbolic Programming Language.
Assembly language is second-generation language and low-level language. It was mostly used programming language for second generation computers. Although this language is more developed than machine language, it is not equivalent to high-level language, so assembly language is called low-level language.
A translator program is required to translate the Assembly Language to machine language. This translator program is called `Assembler’.
A program written in Assembly language to add two numbers-
In assembly language there are four parts in every instruction. Such as-
- Label
- Op-code
- Operand
- Comment
Label: A label in a programming language is a sequence of characters that identifies a location within source code. By using label, program execution can jump from one statement to another statement. A label consists of one or two alphanumeric characters and cannot have any space between characters. A mnemonic can not be used as a label. A colon(:) sign is used after a label. For example- BB:
Op-code: Op-code is also called operational code. Op-code is a mnemonic having instruction. These mnemonics can be different in different computers. Some mnemonics and their functions are-
Mnemonic | Functions |
LDA | Instruction for loading accumulator with data of main memory. |
STA | Instruction for storing data of accumulator in particular place. |
CLR | Instruction to clear accumulator. |
ADD | Instruction for adding the value of operand with accumulator and store the result in accumulator. |
SUB | Instruction for subtracting the value of operand from accumulator and store the result in accumulator. |
MUL | Instruction for multiplying the value of operand with accumulator and store the result in accumulator. |
DIV | Instruction for dividing accumulator by the value of operand and store the result in accumulator. |
JMP | Instruction for unconditionally jumping to a certain point of the program. |
INP | Instruction for receiving data or instruction and storing in particular place of memory. |
OUT | Instruction to send data from the particular place of memory to the output. |
STP | Instruction to stop the program. |
Operand: Operand is on which the op-code works. It could be memory address or actual data.
Comment: Comments that explain instruction but not part of it. Comments are written for instruction so that in future any programmer can understand the meaning of the program and can modify the program easily.
Advantages of Assembly Language:
1. Assembly language is easier to understand and write a program as compared to machine language.
2. It saves a lot of time and effort to write a program.
3. It is easier to modify program instructions than machine language.
4. It is easier to debug a program than machine language.
Disadvantages of Assembly Language:
1. One of the major disadvantages is that assembly language is machine dependent. A program written for one computer might not run in other computers with different hardware configuration.
2. Since it is machine dependent, the programmer also needs to understand the hardware.
3. It needs translator program.
Third Generation Language(3GL):
High Level Language:
High-level programming languages mean that the languages are easily understandable and close to human language. These languages are similar to human language like English and machine independent that’s why these language are called high level programming language.
These languages are easy to understand for people but computers can not understand directly. So it needs to convert the program written in high level language into machine language using a translator program. These languages are called third generation language.
Some examples of high level programming languages are Fortran, Basic, Pascal, Cobol, C, C++, Visual Basic, Java, Oracle, Python etc.
A program written in High-level(C) language to add two numbers-
Types of High Level Programming Language:
Based on the application of high level languages they are two types-
General Purpose Language: These type of high level languages are suitable for all kinds of functions.
For Example- C, Python, Java etc.
Special Purpose Language: These type of high level languages are suitable for only special kinds of functions.
For Example- LISP, COBOL, ALGOL, FORTRAN etc.
High level languages are grouped in two categories based on execution model –
Compiled languages: C, C++, C# etc are compiled language
Interpreted languages: Python, Ruby, Perl, SNOBOL, MATLAB etc. are interpreted language.
Procedural Language: C, BASIC, ALGOL, COBOL, FORTRAN etc.
Object Oriented Language: C++, C#, Java, Python etc.
Advantages of High Level Language:
1. High level languages are programmer friendly. They are easy to learn as well as easy to write and maintain the program.
2. Less error prone, easy to find bug and debug.
3. The programmer need not to know details of hardware to write a program .
4. It is machine independent language.
5. High level programming results in better programming productivity.
Disadvantages of High Level Language:
1. The problem with high-level languages is that they cannot communicate directly with the hardwares or computers.
2. It needs translator program and It takes additional translation times to translate the source to machine code.
3. High level programs are comparatively slower than low level programs.
4. Compared to low level programs, they need more memory space to run.
Application of High Level Language:
Today almost all programs are developed using a high level programming language. We can develop a variety of applications using high level language. They are used to develop desktop applications, websites, system software’s, utility software’s and many more.
1. To develop a large application software.
2. To develop application package software.
3. To develop software for automated process control etc.
Introduction to some popular high level programming languages:
C: C programming language was originally developed by Dennis M. Ritchie to develop the UNIX operating system at Bell Labs. It was first implemented on the DEC PDP-11 computer in 1972.
C is a general-purpose, structured or procedure, high-level language. It is also popular as mid level language.
C is a successor of B language which was introduced around the early 1970s and B is successor of BCPL(BCPL-Basic Combined Programming Language) developed by Martins Richards.
C++: In 1970, Bjarne Stroustrup developed a new programming language called ‘C++’ by combining the feature of C language with the feature of Object Oriented Programming at Bell Laboratory.
It was originally named “C with Classes” but later it was renamed C++ in 1983. C++ is a superset of C.
This language is called Object Oriented Programming Language.
This language can be used to create various system software, application software, device drivers, etc.
Java: Java programming language was originally developed by Sun Microsystems which was initiated by James Gosling and released in 1995 as core component of Sun Microsystems’ Java platform (Java 1.0 [J2SE]).
Java is platform independent and an object-oriented Language. The main reason for the popularity of Java in the current era is that programs written using this language can be run on any operating system.
The language, initially called ‘Oak’ after an oak tree that stood outside Gosling’s office, also went by the name ‘Green’ and ended up later being renamed as Java, from a list of random words.
Web applications, desktop applications, mobile applications, etc. can be developed using this programming language.
Python: It was initially designed by Guido van Rossum in 1991 and developed by Python Software Foundation. It was mainly developed for emphasis on code readability, and its syntax allows programmers to express concepts in fewer lines of code.
Python is a widely used general-purpose, high level programming language. This language supports both structure and object oriented program design models.
You can use Python for developing desktop GUI applications, websites and web applications. Also, Python, as a high level programming language, allows you to focus on core functionality of the application by taking care of common programming tasks. The simple syntax rules of the programming language further makes it easier for you to keep the code base readable and application maintainable.
Visual Basic: The programming language and environment developed by Microsoft.
Based on the BASIC language, Visual Basic was one of the first products to provide a graphical programming environment and a paint metaphor for developing user interfaces.
Instead of worrying about syntax details, the Visual Basic programmer can add a substantial amount of code simply by dragging and dropping controls, such as buttons and dialog boxes, and then defining their appearance and behavior.
Customized application software can be easily developed using this language.
ALGOL: ALGOL is short for algorithmic language. It is a family of portable programming languages for scientific computations that had a strong influence on other languages.
Additionally, ALGOL was used as the standard method for creating algorithms by the ACM in textbooks and academia for over 30 years.
Fortran: Fortran, as derived from Formula Translating System, is a general-purpose, imperative programming language. It is used for numeric and scientific computing. Fortran was originally developed by IBM in the 1950s for scientific and engineering applications.
Mid-Level Language:
The languages having characteristics of both low level languages and high level languages is called mid level language. Using mid level language it can be done bit-level programming or hardware can be controlled with system software and it is also characteristics of low-level languages. On the other hand, application softwares can be developed using mid-level languages and it is also characteristics of high-level languages.
Some examples of mid level languages are- C, C++, JAVA, Forth, Dbase, WordStar etc.
Fourth Generation Language(4GL):
4GL stands for Fourth Generation Language. Fourth Generation Language is also called very high level programming language. Fourth generation programming languages are the one which are closer to human languages rather than the high level or middle level programming languages. 4GLs are associated with databases and data processing, allowing the efficient development of business-oriented systems.
Most fourth-generation languages are non-procedural or functional languages that encourage users and programmers to specify the results they want, while the computer determines the sequence of instructions that will accomplish those results. Thus, fourth-generation languages have helped simplify the programming process. Examples of 4GLs are SQL, Oracle etc.
Oracle: Oracle database (Oracle DB) is a relational database management system (RDBMS) from the Oracle Corporation.
Originally developed in 1977 by Lawrence Ellison and other developers, Oracle DB is one of the most trusted and widely-used relational database engines.
Fifth Generation Language(5GL):
5GL stands for Fifth Generation Language. Fifth Generation Language is also called natural language. Fifth generation languages are designed to make the computer solve a given problem without the programmer.
Fifth-generation languages are used mainly in artificial intelligence research and to manufacture artificial intelligence(AI) based devices or machines.
Intelligent Compiler is used to translate the program written in 5GL to machine language.
Examples of 5GLs PROLOG(PROgramming LOGic), LISP, Mercury etc.
Lesson Evaluation-
Knowledge Based Questions:
a) What is program?
a) What is programming language?
a) What is programmer?
a) What is programming?
a) What is machine language?
a) What is assembly language?
a) What is mnemonic?
a) What is low level language?
a) What is high level language?
a) What is 4GL?
Comprehension Based Questions:
b) Explain the language written with 0,1.
b) “It is possible to express language using only numbers without words” -explain.
b) “The limitation of Low level programming language is the reason of creating high level programming language”-explain.
b) Why the program written in machine language is executed faster?
b) “Assembly language is more convenient than machine language” -explain.
b) “High level programming language is more convenient than machine language” -explain.
b) “It is easy to program in high level programming language” -explain.
b) Why C programming language is called mid-level programming language?
b) ” ‘C’ is one kind of high level programming language” -explain.
Creative Questions:
Read the following stem and answer the questions:
Nafisa madam was discussing about programming language in ICT class. She said, programs had been written using only numbers before. But at present that is not used. She further said, Now a days C programming language is very popular. She discussed about C programming language in details and told the students to write a program in C language for determining LCM of two numbers.
c) Write details about the programming language mentioned first in the stem.
Read the following stem and answer the questions:
Rahim and Karim are two programmers. The process of writing program of them are different. Rahim uses different symbols for writing a program. On the other hand, Karim uses different English words for writing a program.
c) Which type of language is used by Rahim mentioned in the stem? -Explain.
d) Which one is more convenient between two programming languages mentioned in the stem? Analyze.
Read the stem and answer the questions:
Nipa and Orpa are two friends. They are learning various programming languages. Nipa wrote a program using such a programming language that can not be used in other computers and the program need not to be translated. On the other hand, the program written by Orpa can be used in all types of computers and to write a program using such language no need to know the internal hardware configuration.
c) The programming language used by Nipa is in which generation? explain.
d) Which level of programming languages is more convenient as mentioned in the stem? Analyze.
Multiple Choice Questions:
1. Which language does not require a translator program for writing a program?
a) Machine language b) High level language
c) Assembly language d) Normal language
2. Which language has the advantage of high level language besides hardware control?
a) PASCAL b) COBOL
c) C d) FORTRAN
3. Which language is written with symbolic symbols?
a) Mechanical language b) Assembly language
c) High level language d) Fourth generation language
4. Computer can understand a program directly written in which language?
a) Machine language b) High level language
c) Assembly language d) Fourth generation language
5. 4GL means-
a) Very high level language b) High level language
c) Mid level language d) Low level language
6. Which language is used directly on the computer?
a) Assembly language b) Mechanical language
c) High level language d) Very high level language
7. Which is the symbolic language?
a) Machine language b) Assembly language
c) High level language d) Very high level language
8. By which one a program can be written easily with less memory and resources?
a) Access b) Oracle
c) C d) Python
9. Assembly is the language of which generation?
a) 1st b) 2nd
c) 3rd d) 4th
10. What is called a program written in machine language?
a) ASCII b) Source code
c) Object code d) Unicode
11. If machine language is used to write programs –
i. Changing programs is difficult
ii. Skilled programmers are needed
iii. The program is executed quickly
Which one is correct?
a) i & ii b) i & iii
c) ii & iii d) i, ii & iii
12. Machine language is-
i. executed faster than other languages
ii. machine dependent
iii. through which programs can be written quickly
Which one is correct?
a) i & ii b) i & iii
c) ii & iii d) i, ii & iii
13. Program of machine language-
i. is directly and quickly effective
ii. describes computer organization
iii. is easy to write and use
Which one is correct?
a) i & ii b) i & iii
c) ii & iii d) i, ii & iii
14. Memory addresses are dealt with directly in-
i. machine language
ii. assembly language
iii. C language
Which one is correct?
a) i & ii b) i & iii
c) ii & iii d) i, ii & iii
Written by,
- Mizanur Rahman (Mizan)
- Lecturer in ICT, Shaheed Bir Uttam Lt. Anwar Girls’ College , Dhaka Cantonment
- Founder & Author at www.edupointbd.com
- Software Engineer at mands IT
- Former Lecturer in ICT, Cambrian College, Dhaka
- Contact: 01724351470