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.
- Abstraction100002137
- ArtificialLanguage106894544
- Communication100033020
- GrammaticalRelation113796779
- Inflection113803782
- Language106282651
- LinguisticRelation113797142
- Message106598915
- Paradigm113804375
- ProgrammingLanguage106898352
- Relation100031921
- Subject106599788
- Thing
- WikicatProgrammingLanguages
- WikicatProgrammingLanguageTopics
- WikicatProgrammingParadigms
- 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
- 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
- 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