Plangs!
Menu
Sun

Paradigms

Agent-oriented programming simulates the actions and interactions of autonomous agents.

In computer science, array programming refers to solutions that allow the application of operations to an entire set of values at once. Such solutions are commonly used in scientific and engineering settings.

Aims to increase modularity by allowing the separation of cross-cutting concerns. This allows behaviors that are not central to the business logic (such as logging) to be added to a program without cluttering the code of core functions.

Low-level language with strong (generally one-to-one) correspondence between the language and the architecture's machine code instructions.

Asynchronous tasks executed independently, enabling concurrency and efficient resource utilization.

The same data are sometimes considered as input, and sometimes as output.

Source code is translated to a form more suitable for execution, typically machine code or bytecode, before being run. This is in contrast to interpreted languages, which are run directly from source code.

A point-free programming language in which all expressions denote functions, and the juxtaposition of expressions denotes function composition.

An overall computation is factored into subcomputations that may be executed concurrently. Several computations are executed during overlapping time periods, concurrently, instead of sequentially.

Users declaratively state the constraints on the feasible solutions for a set of decision variables.

Design by Contract is a software design approach that uses contracts to define the obligations and guarantees of software components.

Programs describe the data to be matched and the processing required rather than defining a sequence of steps to be taken.

Allow data to be shared between systems in a structured format.

Restrict access to certain parts of a program's code.

Programs as a directed graph of the data flowing between operations.

Expresses the logic of a computation without describing its control flow.

Involves multiple computers working together on a single task.

Domain-specific language is tailored to a particular application domain.

Educational languages are designed mainly to teach programming concepts.

Specialized computing systems integrated into larger systems.

Created as experiments, jokes, or for artistic purposes.

Centers around responding to user actions or other events.

Emphasizes the use of expressions over statements.

Use rule-based algorithms to simulate decision-making.

Designed to be extended with new features.

Modeling reactive systems using functional programming.

Programs are constructed by applying and composing functions.

Designed to solve a wide range of problems.

Uses statements to change a program's state.

Executed directly, without prior compilation.

Involves the creation of domain-specific languages to solve specific problems.

Delays the evaluation of an expression until its value is needed.

Based on formal logic, using facts and rules to derive conclusions.

Enable software development with minimal hand-coding.

Short for "macro instruction", a rule or pattern that specifies how a certain input should be mapped to a replacement output.

Text-encoding system which specifies the structure and formatting of a document and potentially the relationships among its parts.

Communication between processes through the exchange of messages.

Writing programs that generate or manipulate other programs.

Dividing a program into separate, independent modules.

Selects a function to invoke based on the runtime types of multiple arguments.

Based on more than one paradigm.

Enables the development of software using human language commands.

Objects can contain data (fields) and code (methods). Programs are made out of objects that interact with one another.

Executes multiple tasks simultaneously to improve performance.

Allows for checking and decomposing data structures based on patterns.

Passes data through a series of processing stages, each stage producing input for the next.

Point-free, or tacit programming avoids specifying arguments in function definitions, focusing on composition rather than application.

Focuses on the use of procedures or functions to perform tasks.

Based on the concept of processes as the primary abstraction.

Focuses on the design and use of interfaces or protocols to define program behavior.

Style of object-oriented programming where objects are created by cloning existing ones.

Deals with the development of algorithms for quantum computers.

Used to make queries in databases and information systems.

Focuses on asynchronous data streams and the propagation of change.

Involves tasks that must be completed within strict timing constraints.

Allows a program to inspect and modify its own structure and behavior at runtime.

Involves transforming expressions according to a set of rules to perform computation.

Involves defining rules that control the logic of decision-making systems.

Supports the automation of complex scientific processes.

Used for automating tasks within a software environment.

Allow multiple processes to access the same memory space.

Specialized for modeling and simulating complex systems.

Uses a stack-based data structure for passing parameters.

Emphasizes control structures like loops and conditionals, avoiding the use of 'goto' statements.

Involves manipulating symbols rather than numeric data.

Operates in a time-driven manner where operations occur sequentially and in sync with a clock.

Ensures that data conforms to predefined rules before it is processed.

Lets users create programs by manipulating program elements graphically rather than textually.