Template:Programming paradigms navbox
{{Navbox
| title = Programming paradigms (Comparison by language)
| name = Programming paradigms navbox
| listclass = hlist
| group1 = Imperative
| list1 =
{{Navbox|child
| group1= Structured
| list1=
- Jackson structures
- Block-structured
- Modular
- Non-structured
- Procedural
- Programming in the large and in the small
- Design by contract
- Invariant-based
- Nested function
|group2= Object-oriented
(comparison, list)
|list2=
- Class-based, Prototype-based, Object-based
- Agent
- Immutable object
- Persistent
- Uniform function call syntax
}}
| group2 = Declarative
| list2 =
{{Navbox|child
| group1= Functional
(comparison)
| list1 =
- Recursive
- Anonymous function (Partial application)
- Higher-order
- Purely functional
- Total
- Strict
- GADTs
- Dependent types
- Functional logic
- Point-free style
- Expression-oriented
- Applicative, Concatenative
- Function-level, Value-level
| group2= Dataflow
| list2 =
| group3= Logic
| list3 =
- Abductive logic
- Answer set
- Constraint (Constraint logic)
- Inductive logic
- Nondeterministic
- Ontology
- Probabilistic logic
- Query
| group4= DSL
| list4=
- Algebraic modeling
- Array
- Automata-based (Action)
- Command (Spacecraft)
- Differentiable
- End-user
- Grammar-oriented
- Interface description
- Language-oriented
- List comprehension
- Low-code
- Modeling
- Natural language
- Non-English-based
- Page description
- Pipes and filters
- Probabilistic
- Quantum
- Scientific
- Scripting
- Set-theoretic
- Simulation
- Stack-based
- System
- Tactile
- Templating
- Transformation (Graph rewriting, Production, Pattern)
- Visual
}}
| group3 = Concurrent,
distributed,
parallel
| list3 =
- Actor-based
- Automatic mutual exclusion
- Choreographic programming
- Concurrent logic (Concurrent constraint logic)
- Concurrent OO
- Macroprogramming
- Multitier programming
- Organic computing
- Parallel programming models
- Partitioned global address space
- Process-oriented
- Relativistic programming
- Service-oriented
- Structured concurrency
| group4 = Metaprogramming
| list4 =
- Attribute-oriented
- Automatic (Inductive)
- Dynamic
- Extensible
- Generic
- Homoiconicity
- Interactive
- Macro (Hygienic)
- Metalinguistic abstraction
- Multi-stage
- Program synthesis (Bayesian, Inferential, by demonstration, by example)
- Reflective
- Self-modifying code
- Symbolic
- Template
| group5 = Separation
of concerns
| list5 =
}}
{{navbox documentation}}