Process-oriented programming is a
programming paradigm
A programming paradigm is a relatively high-level way to conceptualize and structure the implementation of a computer program. A programming language can be classified as supporting one or more paradigms.
Paradigms are separated along and descri ...
that separates the concerns of data structures and the concurrent processes that act upon them. The data structures in this case are typically persistent, complex, and large scale - the subject of general purpose applications, as opposed to specialized processing of specialized data sets seen in high productivity applications (HPC). The model allows the creation of large scale applications that partially share common data sets. Programs are functionally decomposed into parallel processes that create and act upon logically shared data.
The paradigm was originally invented for parallel computers in the 1980s, especially computers built with
transputer
The transputer is a series of pioneering microprocessors from the 1980s, intended for parallel computing. To support this, each transputer had its own integrated memory and serial communication links to exchange data with other transputers. ...
microprocessors by
INMOS
Inmos International plc (trademark INMOS) and two operating subsidiaries, Inmos Limited (UK) and Inmos Corporation (US), was a British semiconductor company founded by Iann Barron, Richard Petritz, and Paul Schroeder in July 1978. Inmos Limited ...
, or similar architectures.
Occam was an early process-oriented language developed for the Transputer.
Some derivations have evolved from the
message passing
In computer science, message passing is a technique for invoking behavior (i.e., running a program) on a computer. The invoking program sends a message to a process (which may be an actor or object) and relies on that process and its supporting ...
paradigm of Occam to enable uniform efficiency when porting applications between
distributed memory and
shared memory parallel computers . The first such derived example appears in the programming language
Ease designed at Yale University
in 1990. Similar models have appeared since in the loose combination of SQL databases and objected oriented languages such as
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, often referred to as object-relational models and widely used in large scale distributed systems today. The paradigm is likely to appear on desktop computers as microprocessors increase the number of processors (
multicore) per chip.
The
Actor model
The actor model in computer science is a mathematical model of concurrent computation that treats an ''actor'' as the basic building block of concurrent computation. In response to a message it receives, an actor can: make local decisions, create ...
might usefully be described as a specialized kind of process-oriented system in which the message-passing model is restricted to the simple fixed case of one infinite
input queue per process (i.e. actor), to which any other process can send messages.
See also
*
Communicating process architectures
*
Massively parallel processing
*
Parallel computing
Parallel computing is a type of computing, computation in which many calculations or Process (computing), processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. ...
*
Multi-core
A multi-core processor (MCP) is a microprocessor on a single integrated circuit (IC) with two or more separate central processing units (CPUs), called ''cores'' to emphasize their multiplicity (for example, ''dual-core'' or ''quad-core''). Ea ...
*
Actor model
The actor model in computer science is a mathematical model of concurrent computation that treats an ''actor'' as the basic building block of concurrent computation. In response to a message it receives, an actor can: make local decisions, create ...
References
External links
Sowders, Matthew, "ProcessJ: A process-oriented programming language" (2011). UNLV Theses, Dissertations, Professional Papers, and Capstones. Paper 1393.
{{Programming paradigms navbox
Programming paradigms