Category
page 1Programming paradigms
object-oriented programming
programming paradigm based on the concept of objects
functional programming
programming paradigm based on applying and composing functions
programming paradigm
category of programming languages according to what methodology of designing and implementing programs their features support
scripting language
programming language for run-time events
structured programming
programming paradigm aimed at improving clarity, quality, and development time by using control structures

imperative programming
programming paradigm of directly specifying commands that affect program state
procedural programming
programming paradigm
logic programming
programming paradigm based on formal logic
declarative programming
programming paradigm that expresses the logic of a computation without describing its control flow
knowledge representation and reasoning
field of artificial intelligence on representing information in a form that a computer system can use to solve complex tasks
vibe coding
software development practice with AI assistance
relational model
database model
aspect-oriented programming
programming paradigm
metaprogramming
Metaprogramming is a computer programming technique in which computer programs have the ability to treat other programs as their data. It means that a program can be designed to read, generate, analyse, or transform other programs, and even modify itself, while running. In some cases, this allows programmers to minimize the number of lines of code to express a solution, in turn reducing development time. It also allows programs more flexibility to efficiently handle new situations with no recompiling.
modular programming
structured programming technique where a program is divided into modules with specific functions
event-driven programming
programming paradigm
prototype-based programming
style of object-oriented programming
automatic programming
type of computer programming where some mechanism generates a computer program allowing programmers to write code at higher abstraction levels
design by contract
design of software based on formal, precise and verifiable interface specifications for software components
constraint programming
programming paradigm wherein relations between variables are stated in the form of constraints
self-modifying code
source code that alters its instructions to the hardware while executing
literate programming
Programming paradigm
array programming
programming paradigm that generalize operations on scalars to apply transparently to higher-dimensional arrays to facilitate parallelization
stream processing
programming paradigm which gives some degree of parallel processing
software pipeline
chain of processing software elements
quantum programming
computer programming approach dedicated to quantum computers
object-based language
programming language
reactive programming
a programming paradigm based on event-driven architecture for processing data changes in real-time
end-to-end principle
design principle for computer networking
defensive programming
form of defensive design intended to ensure the continuing function of a piece of software under unforeseen circumstances
filter
computer program or subroutine to process a stream into another stream
differentiable programming
programming paradigm in which a numeric computer program can be differentiated throughout via automatic differentiation, allowing for machine learning based on gradient descent etc.
non-structured programming
programming paradigm

dataflow programming
programming paradigm that models program as a directed graph of data flow between operations
automata-based programming
programming paradigm centred around finite state machines
inductive programming
learning programs from data
Jackson structured programming
Computer programming method
Parallel programming model
abstraction of parallel computer architecture, with which it is convenient to express algorithms and their composition in programs
function-level programming
programming paradigm
probabilistic programming
programming paradigm designed to describe probabilistic models and then perform inference in those models
tacit programming
programming paradigm
data-driven programming
programming paradigm
flow-based programming
data-flow programming paradigm
Symbolic programming
computer programming paradigm
partitioned global address space
parallel programming model in computer science
functional logic programming
programming paradigm that combines logic programming with functional programming
Sequence point
Concept in computer programming
Presentation–abstraction–control
400px|thumb|right|The structure of an application with PAC.
Presentation–abstraction–control (PAC) is a software architectural pattern. It is an interaction-oriented software architecture, and is somewhat similar to model–view–controller (MVC) in that it separates an interactive system into three types of components responsible for specific aspects of the application's functionality. The abstraction component retrieves and processes the data, the presentation component formats the visual and audio presentation of data, and the control component handles things such as the flow of control and co
program synthesis
task to construct a program that provably satisfies a given high-level formal specification
value-level programming
programming paradigm
purely functional programming
programming paradigm that treats all computation as the evaluation of mathematical functions
attribute-oriented programming
programming paradigm
stack-oriented programming
programming paradigm that relies on a stack machine model
language-oriented programming
programming paradigm
extensible programming
programming mechanisms for extending the language, compiler and runtime environment
Ousterhout's dichotomy
division of programming languages into system programming and scripting
concurrent object-oriented programming
programming paradigm that combines object-oriented programming (OOP) together with concurrency