A programming paradigm is a fundamental style of computer programming.
A programming language can support multiple paradigms.
For example, programs written in C++ can be purely procedural, or purely object-oriented, or contain elements of both paradigms.
Software designers and programmers decide how to use those paradigm elements.
The following list shows some major programming paradigms:
Imperative programming paradigm such as Fortran,
which is the oldest programming style being closely related to the computer and its machine language.
The computer is controlled by instructions that are executed in one of the units of the CPU.
To execute instructions or statements is the idea behind imperative programming.
The early higher level languages like BASIC, FORTRAN, and COBOL are modeled after this way of thinking.
C favors the imperative style but because it is a low level language can be used to implement any style as well.
Concurrent/parallel programming paradigm such as Java,
which is able to run more than one application/task concurrently/simultaneously.
It involves:
decomposing an algorithm or data into parts,
distributing the parts as tasks which are worked on by multiple processors simultaneously, and
coordinating work and communications of those processors.
Object-oriented programming paradigm such as Java,
which reduces programming to generating objects and making these objects perform tasks by sending them messages.
Objects are encapsulations of data and procedures.
The data are called attributes and the procedures are called methods.
Objects of the same type are normally assigned to classes of objects.
Classes may be hierarchically structured.
Subclasses automatically inherit all attributes and methods of their parent class.