This article is about classification of programming languages. For definition of the term "programming model", see Programming model.
A programming paradigm is a relatively high-level way to structure and conceptualize the implementation of a computer program. A programming language can be classified as supporting one or more paradigms.[1]
Paradigms are separated along and described by different dimensions of programming. Some paradigms are about implications of the execution model, such as allowing side effects, or whether the sequence of operations is defined by the execution model. Other paradigms are about the way code is organized, such as grouping into units that include both state and behavior. Yet others are about syntax and grammar.
Some common programming paradigms include (shown in hierarchical relationship):[2][3][4]
Imperative – code directly controls execution flow and state change
procedural – organized as procedures that call each other
object-oriented – organized as objects that contain both data structure and associated behavior
Declarative – code declares properties of the desired result, but not how to compute it
functional – a desired result is declared as the value of a series of function evaluations
logic – a desired result is declared as the answer to a question about a system of facts and rules
reactive – a desired result is declared with data streams and the propagation of change
^"Multi-Paradigm Programming Language". Mozilla Developer Network. Mozilla Foundation. Jun 21, 2013. Archived from the original on 21 August 2013.
^Nørmark, Kurt. Overview of the four main programming paradigms. Aalborg University, 9 May 2011. Retrieved 22 September 2012.
^Frans Coenen (1999-10-11). "Characteristics of declarative programming languages". cgi.csc.liv.ac.uk. Archived from the original on 2014-02-27. Retrieved 2014-02-20.
^Michael A. Covington (2010-08-23). "CSCI/ARTI 4540/6540: First Lecture on Symbolic Programming and LISP" (PDF). University of Georgia. Archived from the original (PDF) on 2012-03-07. Retrieved 2013-11-20.
and 22 Related for: Programming paradigm information
A programmingparadigm is a relatively high-level way to structure and conceptualize the implementation of a computer program. A programming language can...
the main programmingparadigms, as seen when measuring programming language popularity: Procedural programming – specifies the steps a program must take...
computer science, imperative programming is a programmingparadigm of software that uses statements that change a program's state. In much the same way...
functional programming is a programmingparadigm where programs are constructed by applying and composing functions. It is a declarative programmingparadigm in...
Procedural programming is a programmingparadigm, classified as imperative programming, that involves implementing the behavior of a computer program as procedures...
procedures, by writing code in one or more programming languages. Programmers typically use high-level programming languages that are more easily intelligible...
reactive programming is a declarative programmingparadigm concerned with data streams and the propagation of change. With this paradigm, it is possible...
science, declarative programming is a programmingparadigm—a style of building the structure and elements of computer programs—that expresses the logic...
Structured programming is a programmingparadigm aimed at improving the clarity, quality, and development time of a computer program by making extensive...
Literate programming is a programmingparadigm introduced in 1984 by Donald Knuth in which a computer program is given as an explanation of how it works...
purely functional programming usually designates a programmingparadigm—a style of building the structure and elements of computer programs—that treats all...
object-oriented computer programs are made out of objects that interact with one another. Service-oriented programming, a programmingparadigm that uses "services"...
Cargo cult programming is a style of computer programming characterized by the ritual inclusion of code or program structures that serve no real purpose...
In computer programming, Intentional Programming is a programmingparadigm developed by Charles Simonyi that encodes in software source code the precise...
Logic programming is a programming, database and knowledge representation paradigm based on formal logic. A logic program is a set of sentences in logical...
Multiparadigm languages support more than one programmingparadigm. They allow a program to use more than one programming style. The goal is to allow programmers...
Tacit programming, also called point-free style, is a programmingparadigm in which function definitions do not identify the arguments (or "points") on...
producing what's known in programming as an executable. Computer architecture has strongly influenced the design of programming languages, with the most...
theoretic programming is a programmingparadigm based on mathematical set theory. One example of a programming language based on this paradigm is SETL....
In computer programming, dataflow programming is a programmingparadigm that models a program as a directed graph of the data flowing between operations...
structured approach to computer programming. Conceptually, design pattern may be described as more specific than programmingparadigm and less specific than algorithm...
Differentiable programming is a programmingparadigm in which a numeric computer program can be differentiated throughout via automatic differentiation...