|
|
Please help improve this article or section by expanding it. Further information might be found on the talk page or at requests for expansion. (February 2008) |
A programming paradigm is a fundamental style of Computer programming. (Compare with a methodology, which is a style of solving specific software engineering problems).
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.
In object-oriented programming, programmers can think of a program as a collection of interacting objects, while in functional programming a program can be thought of as a sequence of stateless function evaluations. When programming computers or systems with many processors, process oriented programming allows programmers to think about applications as sets of concurrent processes acting upon logically shared data structures.
Just as different groups in software engineering advocate different methodologies, different programming languages advocate different programming paradigms. Some languages are designed to support one particular paradigm (Smalltalk supports object-oriented programming, Haskell supports functional programming), while other programming languages support multiple paradigms (such as C++, C#, Visual Basic, Common Lisp, Scheme, Python, Ruby and Oz).
Many programming paradigms are as well known for what techniques they forbid as for what they enable. For instance, pure functional programming disallows the use of side-effects; structured programming disallows the use of goto. Partly for this reason, new paradigms are often regarded as doctrinaire or overly rigid by those accustomed to earlier styles.[citation needed] Avoiding certain techniques can make it easier to prove theorems about a program\'s correctness—or simply to understand its behavior.
|
|
To meet Wikipedia\'s quality standards, this article or section may require cleanup because it is in a list format that may be better presented using prose. You can help by converting this section to prose, if appropriate. Editing help is available. (February 2008) |
This article is licensed under the GNU Free Documentation License. It uses material from Wikipedia