プロセス指向プログラミングは、データ構造と、それらを操作する並行プロセスの役割を分離するプログラミングパラダイムです。この場合のデータ構造は、一般的に永続的で複雑かつ大規模であり、高生産性アプリケーション(HPC)に見られるような特殊なデータセットの特殊処理とは異なり、汎用アプリケーションの対象となります。このモデルでは、共通のデータセットを部分的に共有する大規模アプリケーションの作成が可能です。プログラムは、論理的に共有されるデータを作成および操作する並列プロセスに機能的に分解されます。
このパラダイムは、もともと1980年代に並列コンピュータ、特にINMOS社製のトランスピュータマイクロプロセッサを搭載したコンピュータや、それに類するアーキテクチャ向けに考案されたものです。Occamは、トランスピュータ向けに開発された初期のプロセス指向言語でした。
オッカムのメッセージパッシングパラダイムから派生したいくつかの手法は、分散メモリと共有メモリの並列コンピュータ間でアプリケーションを移植する際に均一な効率性を実現するように発展してきた。このような派生手法の最初の例は、 1990年にイェール大学で設計されたプログラミング言語Ease [ 1 ] [ 2 ]に見られる。その後、SQLデータベースとJavaなどのオブジェクト指向言語の緩やかな組み合わせに同様のモデルが登場し、これらはオブジェクトリレーショナルモデルと呼ばれることが多く、今日では大規模分散システムで広く使用されている。マイクロプロセッサがチップあたりのプロセッサ数(マルチコア)を増やすにつれて、このパラダイムはデスクトップコンピュータにも登場する可能性が高い。
アクターモデルは、メッセージ伝達モデルが、プロセス(つまりアクター)ごとに1つの無限入力キューという単純な固定ケースに限定され、他のプロセスがメッセージを送信できるという、特殊なプロセス指向システムとして説明できるだろう。