A computer program is a sequence of detailed instructions in a programming language that a computer can execute or interpret. A computer program in its human-readable form is called source code. Programming is the process of designing and building an executable computer program to accomplish a specific computing task or achieve a specific task, programming is how you get computers to solve problems. Programming is a science because it implements the algorithms described by mathematics and science, it is a skill because it requires basic efforts. It is an engineering because it requires trades offs between program size, speed, time [required for development and debugging] and maintainability among many solutions. It is an art, it requires creativity and employs imagination.
Levels/ Generations of Programming
a. First Generation Language [1GL]
Machine Language, 0’s and 1’s
b. Second Generation Language [2GL]
Assembly Language, mnemonics
c. Third Generation Language [3GL]
High level languages, procedure oriented or object oriented
d. Fourth Generation Programing Languages [4GL]
Very high level programming languages
e. Fifth generation language [5GL]
Natural languages
A. FIRST GENERATION PROGRAMMING LANGUAGES
This is the lowest level of programming language, it is the language used to program the first generation computers. The instructions in the first generation programming languages are made of binary numbers represented by 1s and 0s. The 1s and 0s corresponds to the on and off states of electrical switches. It is easier to understand by the machine but much difficult to interpret and learn by the human programmer. Originally, no translator was used to compile or assemble the first-generation language. The first-generation programming instructions were entered through the front panel switches of the computer system. First generation languages are very much adapted to a specific computer and CPU, and code portability is therefore significantly reduced in comparison to higher level languages. Modern day programmers still occasionally use machine level code, especially when programming lower level functions of the system, such as drivers, interfaces with firmware and hardware devices. Modern tools such as native-code compilers are used to produce machine level from a higher-level language
B. SECOND GENERATION PROGRAMMING LANGUAGE
The second generation programming language is also known as assembly language, the programmer can write instructions faster but it is still not an easy language to learn, An assembler is a program that translates assembly language program into machine language. The symbolic representation of machine Instructions, registers and memory addresses allows the programmer to produce a human-readable program. For the computer to understand the program it must be converted to a machine readable format using an Assembler. The Assembler usually converts the Mnemonics via a one-to-one mapping from the mnemonic representation to machine language, for a particular processor family and environment. They are mostly used for the implementation of low-level kernels and drivers and for performance-oriented and processing-intensive applications such as computer games, graphic manipulation applications and video editing applications. Assemblers allow for easier debugging of the program, and also introduce more advanced programming mechanisms such as macro Programming and structured Programming.
C. THIRD GENERATION PROGRAMMING LANGUAGE
The third generation programming language is also known as a high level programming language, it is an English language it is a refinement of the second generation programming language it allows users to write in familiar notation rather than numbers or abbreviations, programmers in 3GLs are favored by using aggregate data types, variable names and the ability to define sections of code as subroutines. The program in 3GL is called the Source Program or Source Code and it subsequently converted by a specialized program, the Compiler, to Object Code, understandable by the specific computer and CPU, most high level languages are not machine dependent, the translator for high level languages is either a compiler or interpreter e.g of high level languages are FOTRAN COBOL, BASIC etc.
D. FOURTH GENERATION PROGRAMMING LANGUAGE
A fourth generation (programming) language (4GL) is a grouping of programming languages that attempt to get closer than 3GLs to human language, form of thinking and conceptualization. They are much more user oriented and allow programmers develop programs with fewer commands compared to the third generation programming language. Many 4GLs are associated with databases and data processing, They consists of report generators query languages, application generators and interactive database management system e.g RPG III [Report Generator], SQL [Structured Query Language], NOMAD and FOCUS [DBMS] This feature allows the efficient development of business-oriented systems with languages that closely match the way domain experts formulate business rules and processing sequences. Many of such data-oriented 4GLs are based on the Structured Query Language (SQL), invented by IBM and subsequently adopted by ANSI and ISO as the standard language for managing structured data.
E. FIFTH GENERATION LANGUAGE
This is a grouping of programming languages built on the premise that a problem can be solved, and an application built to solve it, by providing constraints to the program (constraint-based programming/ problem oriented), rather than specifying algorithmically how the problem is to be solved (imperative programming). In essence, this programming language is used to denote the properties, or logic, of a solution, rather than how it is reached. Most constraint- based and logic programming languages are fifth Generation programming Languages. They are also known as natural language. Fifth generation programming languages are designed to make the computer solve a given problem without the programmer. Natural languages are part of the field of study known as artificial intelligence, they develop machines to emulate human like qualities such as learning, reasoning, communicating, seeing and hearing.