Programming paradigm

Programming paradigm

Programming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with implications for the execution model of the language, such as allowing side effects, or whether the sequence of operations is defined by the execution model. Other paradigms are concerned mainly with the way that code is organized, such as grouping a code into units along with the state that is modified by the code. Yet others are concerned mainly with the style of syntax and grammar.

Comment
enProgramming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with implications for the execution model of the language, such as allowing side effects, or whether the sequence of operations is defined by the execution model. Other paradigms are concerned mainly with the way that code is organized, such as grouping a code into units along with the state that is modified by the code. Yet others are concerned mainly with the style of syntax and grammar.
Depiction
Programming paradigms.svg
Has abstract
enProgramming paradigms are a way to classify programming languages based on their features. Languages can be classified into multiple paradigms. Some paradigms are concerned mainly with implications for the execution model of the language, such as allowing side effects, or whether the sequence of operations is defined by the execution model. Other paradigms are concerned mainly with the way that code is organized, such as grouping a code into units along with the state that is modified by the code. Yet others are concerned mainly with the style of syntax and grammar. Common programming paradigms include: * imperative in which the programmer instructs the machine how to change its state, * procedural which groups instructions into procedures, * object-oriented which groups instructions with the part of the state they operate on, * declarative in which the programmer merely declares properties of the desired result, but not how to compute it * functional in which the desired result is declared as the value of a series of function applications, * logic in which the desired result is declared as the answer to a question about a system of facts and rules, * mathematical in which the desired result is declared as the solution of an optimization problem * reactive in which the desired result is declared with data streams and the propagation of change Symbolic techniques such as reflection, which allow the program to refer to itself, might also be considered as a programming paradigm. However, this is compatible with the major paradigms and thus is not a real paradigm in its own right. For example, languages that fall into the imperative paradigm have two main features: they state the order in which operations occur, with constructs that explicitly control that order, and they allow side effects, in which state can be modified at one point in time, within one unit of code, and then later read at a different point in time inside a different unit of code. The communication between the units of code is not explicit. Meanwhile, in object-oriented programming, code is organized into objects that contain a state that is only modified by the code that is part of the object. Most object-oriented languages are also imperative languages. In contrast, languages that fit the declarative paradigm do not state the order in which to execute operations. Instead, they supply a number of available operations in the system, along with the conditions under which each is allowed to execute. The implementation of the language's execution model tracks which operations are free to execute and chooses the order independently. More at Comparison of multi-paradigm programming languages.
Hypernym
Way
Is primary topic of
Programming paradigm
Label
enProgramming paradigm
Link from a Wikipage to an external page
www.info.ucl.ac.be/~pvr/paradigms.html
www.janeve.me/articles/understanding-programming-paradigms
Link from a Wikipage to another Wikipage
Alexander Stepanov
ALGOL
Algorithm
Algorithmic efficiency
Artificial intelligence
Assembly language
Assignment (computer science)
AT&T Bell Labs
Automated reasoning
Automated theorem proving
Automatic differentiation
BASIC
C (programming language)
C++
Category:Programming language classification
Category:Programming language topics
Category:Programming paradigms
COBOL
Common Lisp
Comparison of multi-paradigm programming languages
Comparison of programming paradigms
Computer file
Copy (command)
C Sharp (programming language)
Data
Data structure
Declarative programming
Dennis Ritchie
Differentiable programming
Differentiation (mathematics)
Distributed memory
Domain (software engineering)
Domain-specific language
Efficacy
Eiffel (programming language)
Embedded system
Encapsulation (computer programming)
Execution model
Expert system
File:Programming paradigms.svg
First-generation programming language
FORTRAN
Fourth-generation programming language
F Sharp (programming language)
Function (mathematics)
Functional programming
Goto
Haskell (programming language)
High Level Assembly
High-level programming language
Hypertext
I
Imperative programming
Inference rule
Instruction set
Java (programming language)
JavaScript
Lisp (programming language)
Literate programming
Logic programming
Low-level programming language
Machine code
Mathematical
Mathematical programming
Meme
Memory address
Message passing
Method (computer programming)
Modeling language
Move (command)
Natural-language processing
Object (computer science)
Object (programming)
Object-oriented programming
Object Pascal
Oz (programming language)
Parallel computing
Perl
PHP
Pointer (computer programming)
Polymorphism (computer science)
Procedural language
Procedural programming
Process-oriented programming
Programming domain
Programming language
Programming model
Prolog
Python (programming language)
Reactive programming
Recursion (computer science)
Reflection (computer programming)
Richard Stallman
Robert W. Floyd
Ruby (programming language)
Scala (programming language)
Scheme (programming language)
Second-generation programming language
Shared memory
Side effect (computer science)
Side-effect (computer science)
Simula
Smalltalk
Software bloat
Software engineering
SQL
Structured programming
Subroutine
Symbolic programming
The Structure of Scientific Revolutions
Third-generation programming language
Thomas Kuhn
Turing Award
Turing completeness
Visual Basic
Von Neumann programming languages
SameAs
4308224-5
m.019zst
m.02pqyk1
Mẫu hình lập trình
Ohjelmointiparadigma
oypJ
Paradigma de programação
Paradigma de programació
Paradigma de programación
Paradigma de programación
Paradigma de programación
Paradigmă de programare
Paradigma di programmazione
Paradigma pemrograman
Paradigma pengaturcaraan
Paradigma programmandi
Paradigma programore
Paradigma ya programu
Paradigme (programmation)
Paradygmat programowania
Programada paradigmo
Programazio paradigma
Programlama paradigması
Programmeerimise paradigma
Programmeerparadigma
Programmeringsparadigm
Programmeringsparadigme
Programmeringsparadigme
Programmēšanas paradigma
Programmierparadigma
Programming paradigm
Programming paradigm
Programovací paradigma
Programozási paradigma
Programska paradigma
Programska paradigma
Proqramlaşdırma paradiqması
Q188267
Προγραμματιστικό παράδειγμα
Парадигма на програмиране
Парадигма программирования
Парадигма програмування
Парадигме програмирања
Програмерска парадигма
פרדיגמת תכנות
نمط برمجة
پارادایم برنامه‌نویسی
پروگرامنگ پیراڈائم
প্রোগ্রামিং প্যারাডাইম
പ്രോഗ്രാമിങ് ശൈലി
กระบวนทัศน์การเขียนโปรแกรม
プログラミングパラダイム
编程范型
프로그래밍 패러다임
SeeAlso
Comparison of multi-paradigm programming languages
State
encollapsed
Subject
Category:Programming language classification
Category:Programming language topics
Category:Programming paradigms
Thumbnail
Programming paradigms.svg?width=300
Title
enProgramming
enSoftware engineering
WasDerivedFrom
Programming paradigm?oldid=1123686172&ns=0
WikiPageLength
21469
Wikipage page ID
189897
Wikipage revision ID
1123686172
WikiPageUsesTemplate
Template:About
Template:Anchor
Template:Authority control
Template:Citation needed
Template:Commons category
Template:Computer language
Template:Computer science
Template:Div col
Template:Div col end
Template:Main
Template:Major programming languages
Template:More citations needed
Template:Navboxes
Template:Portal
Template:Programming language generations
Template:Programming paradigms
Template:Reflist
Template:Rp
Template:See also
Template:Short description
Template:Snd
Template:Software engineering
Template:Types of programming languages