|
Linda は、並列プログラミング言語であり、Prolog、C言語、Javaなどの他の(逐次的)言語上に拡張として実装される。 == 概要 == 並列処理とプログラミング言語の関わりを考えたとき、いくつかの手法が考えられる。まず、言語を並列処理向きに一から設計する手法である。例えば、CSPに基づいた Occam などがある。第二に既存の言語に並列処理モデルを導入して新たな言語を構築する手法である。例えば、Multilisp、Concurrent Smalltalk などがある。第三に並列化を言語仕様とは別の部分で実現する手法である。例えば、コンパイラによって並列処理を実現する。 Linda はこれらとは異なるアプローチであり、既存の言語仕様に修正を加えずに協調モデル(coordination model)を付加することで並列処理を実現する。このため Linda は「協調言語(coordination language)」とも呼ばれ、並列性のない言語で書かれたアプリケーション間の協調動作にのみ注目している。Linda のモデルでは、タプルスペース(tuplespace)と呼ばれる概念上の共有メモリ上で型つきのデータレコード(タプル)をそこに格納する。タプルスペースは以下の5つの単純な操作でアクセスされる。 ;out :プロセスからタプルスペースにタプルを出力する。 ;in :タプルスペースからタプルを削除し、それをプロセスに返す。必要なタプルが見つからない場合はブロックされ、待つことになる。 ;rd :タプルスペースからタプルをコピーし、それをプロセスに返す。必要なタプルが見つからない場合はブロックされ、待たされる。 ;inp :in のブロックされない形式。必要なタプルがない場合はエラーを返す。 ;rdp :rd のブロックされない形式。 タプルスペースからタプルを取り出す操作は、一種の連想メモリのように行う。つまり、タプルの一部のフィールドの値を指定して、それにマッチするタプルを取り出す。これにより、本来関係のないプロセス間でデータをやり取りできる。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Linda」の詳細全文を読む スポンサード リンク
|