2. First Generation: Machine Languages
The late 1940s to early 1950s saw the emergence of first generation languages (1GL).
They are known as machine languages and use a binary code that consists of strings of
only zeroes (0) and ones (1). These are languages that are computer can understand
and execute directly without any need for translation. Programs written in 1GL
relatively run quickly and efficiently.
3. Second Generation:
Assembly Languages
In the early mid-1950s, second generation languages (2GL) came out. They usually
refer to some form of symbolic or assembly language – instead of zeroes and ones,
assembly languages use mnemonics or very short words for commands. Compared to
1GL, 2GL is a little less difficult for programmers to learn and use. 1GL and 2GL are
both low-level languages. They are designed to facilitate fast and efficient execution
in computers, without much regard for the convenience of the programmers who use
them
4. Third Generation:
High-Level Languages
Third generation languages (3GL), also called high-level programming languages,
began to unfold during the mid – to late 1950s. With developments in computer
hardware during this period showing a trend towards a rapid increase in computing
power, developments in programming languages started to shift towards a high-level
language. Most modern computer languages belong here. 3GL introduced the use of
data structures and control structures, which are high-level abstractions of
programming concepts that previously had to be coded directly in low-level
languages.
5. Fourth Generation:
Declarative Languages
Despite the improved capabilities of 3GL, programming continued to be a slow,
frustrating, and error-prone process. The amount of programming work soon exceeded
the amount of time available for the programmers to do it. Fourth generation
languages (4GL) are more advanced than traditional high-level programming
languages. Commands are usually English-like and do not require traditional input-
process-output logic. They are also referred to as non-procedural specification
languages – a programmer who writes 4GL programs concentrates more on what
needs to be done rather than how to do it.
6. Fifth Generation: AI
(Artificial Intelligence)
Fifth generation languages (5GL) are basically an outgrowth of artificial intelligence
research from the 1980s. Conventional Languages then rely on algorithms defined by
the programmer to solve problems; the approach is to build a program that implements
a specific algorithm devised by the programmer to address a specific problem. 5GLs
operate on the concept of solving problems based on constraints or rules that have
been declared in the program.
8. IMPERATIVE PROGRAMMING
Imperative Programming is the oldest and most traditional model of
computing. In a regular, non-programming context, the word “imperative”
refers to a mood essential order or command. Here, it describes computation
in terms of a program state and the actions that change that state. Imperative
languages evolved from machine and assembly languages, whose
characteristics reflect the principle of the von Neumann architecture. The
program consists of explicit command or instruction to be executed
9. VON NEUMANN
ARCHITECTURE
is the design upon which many general purpose
computers are based. The key elements of von
Neumann architecture are: data and instructions are
both stored as binary digits. data and instructions are
both stored in primary storage.
11. FUNCTIONAL PROGRAMMING
Functional programming is an expression-oriented programming paradigm.
Computations are specified through mathematical function that evaluate
input expressions and convert them into output values. Functional
programming languages are “what” –oriented.
13. LOGIC PROGRAMMING
In the logical paradigm, programs are written as logical statements that
describe the properties the solution must have. The program is viewed as a
logical theory and computation is basically the search for proof. It may also
be stated the logic programming is based on the concept of logical deduction
in symbolic logic, or the manipulation of symbols.
15. OBJECT-ORIENTED PROGRAMMING
In object-oriented programming, data structures are viewed as objects, and
programmers create relationships between these objects. A group of objects
that have the same properties, operations and behaviors is called a class. By
reusing classes developed for the applications, new applications can be
developed faster and with improved reliability and consistency of deisgn
17. CONCURRENT AND DISTRIBUTED
PROGRAMMING
Concurrent or parallel programming is a computer programming technique
that allows for the execution of two or more operations at the same time.
Conventional paradigms deal with programming operations in linear fashion
that is from start to finish and in one continuous execution. The idea in
concurrent programming is to split a single task into several smaller subtask
that can run relatively independently of each other
18. CONCURRENT AND DISTRIBUTED
PROGRAMMING
Parallel programming is effective mainly for programming problems that
can be readily broken down into independent subtasks, such as certain
mathematical problems like factorization. It can be implemented on a single
computer, or across a number of computers. When a multi-processor or
multi-computer platform is used to implement this, we use the term
Distributed programming.