The major programming paradigms known today are functional, object oriented and imperative programming paradigm.
Functional Programming ParadigmAmong the programming paradigms, the functional programming paradigm results from strictly applying the original Lambda Calculus, invented by Alonzo Church in 1941, to programming.
In this paradigm functions are only allowed to return values to the caller of the function. They are not allowed to produce side effects.
This means that the language does not allow assignment statements. It does not provide a facility to execute statements but to evaluate expressions.
Programs written in a functional style are very robust and easier to debug in contrast to imperative programs which may produce side effects causing a complexity that is very difficult to handle.
Programming languages that require to program in a functional style are Haskell, ML, SML, Miranda and others.
Scheme is a hybrid language which favors the functional programming paradigm but can also be used to program in an object oriented or even imperative style because it does allow assignment statements, which are flagged however to indicate their potential danger.
Object Oriented Programming ParadigmThe most popular programming paradigm today is the object oriented paradigm, 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. In most cases objects of the same type are assigned to classes of objects. Classes may be hierarchically structured. Subclasses automatically inherit all attributes and methods of their parent class.
A language that is strictly object oriented is Smalltalk. Java gets close to being strictly object oriented but not quite because it allows to program in an imperative style on a lower level (within methods). Python is another popular language that is primarily object oriented.
C++ is a hybrid language however which favors the object oriented paradigm but does allow to program in almost any style if desired.
Imperative Programming ParadigmThe imperative programming paradigm 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 precisely modelled after this way of thinking.
Structured Programming, which avoids GOTO statements, stills follows the imperative style however. A language falling into this category is Pascal, which was the language of choice for a long time at schools of higher education.
Whereas BASIC, FORTRAN, COBOL and Pascal cannot be considered popular languages anymore, the language C still is. C favors the imperative style but because it is a low level language can be used to implement any style as well.
ARS and Programming ParadigmsAll three paradigms described above can be derived from the powerful principles abstraction reference synthesis. This is shown in the book Programmierung pur.
Whereas the Lambda Calculus serves as a solid base for the functional paradigm only only, ARS, which can be looked at as a generalized lambda calculus, can serve as a base for all three paradigms.
See also:Principles of Programming.