Jump to content

Process-oriented programming: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
See also: Added wikilink to related actor model
Rebalanced the description of Occam here, which is an example of a process-oriented language and had been mis-described
Line 2: Line 2:
'''Process-oriented programming''' is a [[programming paradigm]] 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.
'''Process-oriented programming''' is a [[programming paradigm]] 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]] microprocessors by [[INMOS]], or similar architectures. It evolved to meet deficiencies in the [[message passing]] paradigm of [[Occam programming language|Occam]] {{Citation needed|date=June 2012}} and enable uniform efficiency when porting applications between distributed memory and shared memory parallel computers.
The paradigm was originally invented for parallel computers in the 1980s, especially computers built with [[transputer]] microprocessors by [[INMOS]], or similar architectures. [[Occam programming language|Occam]] was an early process-oriented language developed for the Transputer. Some derivations have evolved from the [[message passing]] paradigm of Occam to enable uniform efficiency when porting applications between distributed memory and shared memory parallel computers {{Citation needed|date=June 2012}}.


The first example of the paradigm appears in the programming language [[Ease programming language|Ease]] designed at Yale University<ref name="process">{{cite paper | last=Ericsson-Zenith | title=Programming with Ease; Semiotic definition of the language|publisher=Yale University, Computer Science Technical Report YALEU/DCS/RR-809|year=1990}}</ref><ref name="process2">{{cite book | last=Ericsson-Zenith |title=Process Interaction Models|publisher=Paris University|year=1992}}</ref> in 1990. Similar models have appeared since in the loose combination of SQL databases and objected oriented languages such as [[Java (programming language)|Java]], 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 ([[Multi-core processor|multicore]]) per chip.
The first such derived example appears in the programming language [[Ease programming language|Ease]] designed at Yale University<ref name="process">{{cite paper | last=Ericsson-Zenith | title=Programming with Ease; Semiotic definition of the language|publisher=Yale University, Computer Science Technical Report YALEU/DCS/RR-809|year=1990}}</ref><ref name="process2">{{cite book | last=Ericsson-Zenith |title=Process Interaction Models|publisher=Paris University|year=1992}}</ref> in 1990. Similar models have appeared since in the loose combination of SQL databases and objected oriented languages such as [[Java (programming language)|Java]], 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 ([[Multi-core processor|multicore]]) per chip.


==See also==
==See also==


*[[Communicating process architectures]]
*[[Massively parallel processing]]
*[[Massively parallel processing]]
*[[Parallel computing]]
*[[Parallel computing]]

Revision as of 22:17, 2 August 2016

Process-oriented programming is a programming paradigm 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 microprocessors by INMOS, or similar architectures. Occam was an early process-oriented language developed for the Transputer. Some derivations have evolved from the message passing paradigm of Occam to enable uniform efficiency when porting applications between distributed memory and shared memory parallel computers [citation needed].

The first such derived example appears in the programming language Ease designed at Yale University[1][2] in 1990. Similar models have appeared since in the loose combination of SQL databases and objected oriented languages such as Java, 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.

See also

References

  1. ^ Ericsson-Zenith (1990). "Programming with Ease; Semiotic definition of the language". Yale University, Computer Science Technical Report YALEU/DCS/RR-809. {{cite journal}}: Cite journal requires |journal= (help)
  2. ^ Ericsson-Zenith (1992). Process Interaction Models. Paris University.