Capabilities and styles of various programming languages are defined by their supported programming paradigms; some programming languages are designed to follow only one paradigm, while others support multiple paradigms. Programming paradigms that are often distinguished include
Programming paradigms can be compared with programming models that are abstractions of computer systems.
For example, the von Neumann model is a programming model used in traditional sequential computers. For parallel computing, there are many possible models typically reflecting different ways processors can be interconnected. The most common are based on shared memory, distributed memory with message passing, or a hybrid of the two.
Some programming language researchers criticise the notion of paradigms as a classification of programming languages. They argue that many programming languages cannot be strictly classified into one paradigm, but rather include features from several paradigms.
Casiano Rodriguez León 2015-01-07