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 software development process is a structure imposed on the development of a software product Software engineering is the application of a systematic disciplined quantifiable approach to the development operation and maintenance of Software.
A programming language can support multiple paradigms. A programming language is an Artificial language that can be used to write programs which control the behavior of a machine particularly a Computer. A multi-paradigm programming language is a Programming language that supports more than one Programming paradigm. For example programs written in C++ or Object Pascal can be purely procedural, or purely object-oriented, or contain elements of both paradigms. C++ (" C Plus Plus " ˌsiːˌplʌsˈplʌs is a general-purpose Programming language. Object Pascal refers to a branch of object oriented derivatives of Pascal, mostly known as the primary Programming language of CodeGear Delphi Procedural programming can sometimes be used as a synonym for Imperative programming (specifying the steps the program must take to reach the desired state but can also Object-oriented programming (OOP is a Programming paradigm that uses " objects " and their interactions to design applications and computer programs 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. Object-oriented programming (OOP is a Programming paradigm that uses " objects " and their interactions to design applications and computer programs In Computer science, functional programming is a Programming paradigm that treats Computation as the evaluation of mathematical functions and 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. Process oriented programming is a Programming paradigm that separates the concerns of data structures and the concurrent processes that act upon them A data structure in Computer science is a way of storing Data in a computer so that it can be used efficiently
Just as different groups in software engineering advocate different methodologies, different programming languages advocate different programming paradigms. Software engineering is the application of a systematic disciplined quantifiable approach to the development operation and maintenance of Software. A programming language is an Artificial language that can be used to write programs which control the behavior of a machine particularly a Computer. 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 Object Pascal, C++, C#, Visual Basic, Common Lisp, Scheme, Python, Ruby and Oz). Smalltalk is an object-oriented, dynamically typed, reflective programming language. Haskell is a standardized Purely functional Programming language with non-strict semantics, named after the Logician Haskell Curry Object Pascal refers to a branch of object oriented derivatives of Pascal, mostly known as the primary Programming language of CodeGear Delphi C++ (" C Plus Plus " ˌsiːˌplʌsˈplʌs is a general-purpose Programming language. C# (pronounced C Sharp is a Multi-paradigm Visual Basic ( VB) is the third-generation event-driven programming language and associated development environment (IDE from Common Lisp, commonly abbreviated CL, is a dialect of the Lisp Programming language, published in ANSI standard document Information Scheme is a Multi-paradigm programming language. It is one of the two main dialects of Lisp and supports a number of programming paradigms but is Python is a general-purpose High-level programming language. Its design philosophy emphasizes programmer productivity and code readability Ruby is a dynamic, reflective, general purpose Object-oriented programming language that combines syntax inspired by Perl with Smalltalk Oz is a Multiparadigm programming language, developed in the Programming Systems Lab at Saarland University.
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 the goto statement. In Computer science, a function or expression is said to produce a side effect if it modifies some state in addition to returning a value Structured programming can be seen as a subset or subdiscipline of Procedural programming, one of the major Programming paradigms It is most famous for removing or GOTO is a statement found in many computer Programming languages It is a combination of the English words go and to Partly for this reason, new paradigms are often regarded as doctrinaire or overly rigid by those accustomed to earlier styles. Avoiding certain techniques can make it easier to prove theorems about a program's correctness—or simply to understand its behavior.
Examples
- Annotative programming (as in Flare language)
- Aspect-oriented programming (as in AspectJ)
- Attribute-Oriented Programming (as in Java 5 Annotations, pre-processed by the XDoclet class; C# Attributes)
- Automata-Based Programming
- Bayesian programming
- Class-based programming, compared to Prototype-based programming (within the context of object-oriented programming)
- Component-oriented programming (as in OLE)
- Concatenative programming
- Constraint programming, compared to logic programming
- Context-oriented programming (as in ContextJ/ContextS/ContextL)
- Cybernetics Oriented Programming
- Dataflow programming (as in spreadsheets)
- Declarative programming
- Event driven programming
- Flow-based programming
- Function-level programming
- Functional programming
- Goal-directed programming as in Snobol, somewhat similar to Logic Programming
- Imperative programming, compared to declarative programming
- Intentional programming
- Literate Programming
- Logic programming (as in Prolog) and Abductive Logic Programming
- Message passing programming, compared to imperative programming
- Nondeterministic programming
- Object-oriented programming (as in Smalltalk)
- Pipeline programming (as in the UNIX command line)
- Policy-based programming
- Procedural programming, compared to functional programming
- Process-oriented programming a parallel programming model. Aspect-oriented programming ( AOP) is a Programming paradigm that increases modularity by allowing the separation of Cross-cutting concerns AspectJ is an aspect-oriented extension created at PARC for the Java programming language Attribute-oriented programming (@OP is a program-level marking technique An annotation, in the Java computer programming language, is a special form of syntactic Metadata that can be added to Java source code Automata-based programming is a Programming paradigm in which the program or its part is thought of as a model of a Finite state machine or any other (often more Class-based programming, or more commonly class-orientation, refers to the style of Object-oriented programming in which inheritance is achieved by defining classes Prototype-based programming is a style of Object-oriented programming in which classes are not present and behavior reuse (known as inheritance in class-based Component-based software engineering (CBSE (also known as Component-Based Development (CBD or Software Componentry) is a branch of the Software engineering Object Linking and Embedding ( OLE) is a technology that allows embedding and linking to documents and other objects developed by Microsoft. The concatenative or stack-based Programming languages are ones in which the Concatenation of two pieces of code expresses the composition of Constraint programming is a Programming paradigm where relations between variables are stated in the form of constraints Logic programming is in its broadest sense the use of mathematical logic for computer programming Dataflow is a term used in Computing, and may have various shades of meaning A spreadsheet is a Computer application that simulates a paper worksheet In Computer science, Declarative programming is a Programming paradigm that attempts to minimize or eliminate side effects by describing what In Computer programming, event-driven programming or event-based programming is a Programming paradigm in which the flow of the program is determined In Computer science, flow-based programming ( FBP) is a Programming paradigm that defines applications as networks of "black box" In computer science function-level programming refers to one of the two contrasting Programming paradigms identified by John Backus in his work on Programs as In Computer science, functional programming is a Programming paradigm that treats Computation as the evaluation of mathematical functions and SNOBOL ( String Oriented Symbolic Language) is a Computer Programming language developed between 1962 and 1967 at AT&T Bell Laboratories Logic programming is in its broadest sense the use of mathematical logic for computer programming In Computer science, imperative programming is a Programming paradigm that describes computation in terms of statements that change a program state In Computer science, Declarative programming is a Programming paradigm that attempts to minimize or eliminate side effects by describing what In Computer programming, intentional programming is a collection of concepts which enable software Source code to reflect the precise information called intention Literate programming is a philosophy of Computer programming based on the premise that a Computer program should be written similar to Literature, with Logic programming is in its broadest sense the use of mathematical logic for computer programming Prolog is a Logic programming language It is a general purpose language often associated with Artificial intelligence and Computational linguistics Abductive Logic Programming is a high level knowledge-representation framework that can be used to solve problems declaratively based on Abductive reasoning. In Computer science, message passing is a form of communication used in Parallel computing, Object-oriented programming, and Interprocess communication A nondeterministic programming language is a language which can specify at certain points in the program (called "choice points" various alternatives for program flow Object-oriented programming (OOP is a Programming paradigm that uses " objects " and their interactions to design applications and computer programs Smalltalk is an object-oriented, dynamically typed, reflective programming language. When a Programming language is originally designed without any syntax to nest function calls pipeline programming is a simple syntax change to add it In Unix-like computer Operating systems a pipeline is the original software pipeline: a set of processes chained by their Standard Policy-based design, also known as policy-based class design or policy-based programming, is a computer Programming paradigm based on an idiom Procedural programming can sometimes be used as a synonym for Imperative programming (specifying the steps the program must take to reach the desired state but can also In Computer science, functional programming is a Programming paradigm that treats Computation as the evaluation of mathematical functions and Process oriented programming is a Programming paradigm that separates the concerns of data structures and the concurrent processes that act upon them
- Reactive programming
- Recursive programming, compared to iterative programming
- Reflective programming
- Scalar programming, compared to Array programming
- Structured programming, compared to unstructured programming
- Subject-oriented programming
- Tree programming
- Value-level programming, compared to function-level programming
- Metaprogramming
See also
Reactive programming is a Programming paradigm oriented around data flows and the propagation of change Recursion in computer science is a way of thinking about and solving problems Iteration means the act of repeating Mathematics Iteration in mathematics may refer to the process of iterating a function, or to the techniques used In Computer science, reflection is the process by which a Computer program can observe and modify its own structure and behavior Scalar programming is a term used to refer to those programming approaches that do not follow the Array programming paradigm. In Computer science, array programming languages (also known as vector or multidimensional languages generalize operations on scalars to apply Structured programming can be seen as a subset or subdiscipline of Procedural programming, one of the major Programming paradigms It is most famous for removing or Structured programming can be seen as a subset or subdiscipline of Procedural programming, one of the major Programming paradigms It is most famous for removing or Subject-oriented programming refers to a method of programming that supports building object-oriented systems as compositions of subjects extending systems by composing them with new subjects Tree programming refers to the use of a Programming language to analyze data trees, in a way unique from conventional programming languages Value-level programming refers to one of the two contrasting Programming paradigms identified by John Backus in his work on Programs as mathematical objects In computer science function-level programming refers to one of the two contrasting Programming paradigms identified by John Backus in his work on Programs as Metaprogramming is the writing of Computer programs that write or manipulate other programs (or themselves as their data or that do part of the work at Compile time Language oriented programming is a style of Computer Programming, via Metaprogramming in which rather than solving problems in General-purpose programming ARS based programming is built on three principles Abstraction, Reference and Synthesis. Grammar-oriented Programming (GOP and Grammar-oriented Object Design ( GOOD are based on designing and creating a Domain-specific programming language
© 2009 citizendia.org; parts available under the terms of GNU Free Documentation License, from http://en.wikipedia.org
network: | |