'''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]] microprocesorsmicroprocessors by [[INMOS]], or similar architectures. It evolved to meet deficiencies in the [[messageOccam passing]]programming paradigm of [[language|Occam]] andwas enablean uniformearly efficiencyprocess-oriented whenlanguage portingdeveloped applicationsfor betweenthe distributed memory and shared memory parallel computersTransputer.
TheSome firstderivations examplehave ofevolved 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 such derived example appears in the programming language [[Ease programming language|Ease]] designed at Yale University<ref name="process">{{cite paperdocument | last=Ericsson-Zenith | authorlink=Steven Ericsson-Zenith | |title=Programming with Ease; Semiotic definition of the language|publisher=Yale University, Computer Science Technical Report YALEU/DCS/RR-809|dateyear=1990|}}</ref><ref name="processprocess2">{{cite book | last=Ericsson-Zenith | authorlink=Steven Ericsson-Zenith | |title=Process Interaction Models|publisher=Paris University|dateyear=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 [[Actor model]] 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.
== References ==
<div class="references-small"><references/></div>
==See also==
*[[Massively parallel processing]]
*[[Parallel computing]]
*[[Multi-core (computing)|Multi-core]]
*[[Actor model]]
== External LinksReferences ==
{{Reflist}}
==External links==
* [http://www.process-interaction-models.info Process Interaction Models]
* [http://digitalscholarship.unlv.edu/cgi/viewcontent.cgi?article=2392&context=thesesdissertations Sowders, Matthew, "ProcessJ: A process-oriented programming language" (2011). UNLV Theses, Dissertations, Professional Papers, and Capstones. Paper 1393.]
[[Category:programming{{Programming paradigms]] navbox}}
[[Category:Programming paradigms]]
[[bg:Парадигма на програмиране]]
[[ca:Paradigma de programació]]
[[da:Programmeringsparadigme]]
[[de:Programmierparadigma]]
[[es:Paradigma de programación]]
[[ko:프로그래밍 패러다임]]
[[id:Paradigma pemrograman]]
[[it:Paradigma di programmazione]]
[[hu:Programozási paradigmák]]
[[ja:プログラミングパラダイム]]
[[pl:Paradygmat programowania]]
[[pt:Paradigma de programação]]
[[ru:Парадигма программирования]]
[[sv:Programmeringsparadigm]]
[[ta:நிரலாக்க கருத்தோட்டம்]]
[[uk:Парадигма програмування]]
[[zh:编程范型]]
|