Concurrent_Prologとは? わかりやすく解説

Concurrent Prolog

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/12 22:09 UTC 版)

Concurrent Prologは、1983年に発表された並行論理プログラミング言語である。イスラエルWeizmann研究所のEhud Shapiroにより設計された[1]。それ以前に開発されたRelational Languageをより単純化し、制限を緩めた言語で、その後の並行論理プログラミング言語に大きな影響を与えた[2][3]。また、並行論理プログラミングでの様々なプログラミング手法がConcurrent Prolog上で開発された。




「Concurrent Prolog」の続きの解説一覧

Concurrent Prolog

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/10/03 01:23 UTC 版)

並行論理プログラミング」の記事における「Concurrent Prolog」の解説

Relational Language参考にして、Shapiroは1983年に単純で表現力の高いConcurrent Prologを提案した通信にはストリームだけでなく任意の項が使えるようになり、ガード記述制限なくなった。不完全メッセージなどの技法も使うことができ、通信チャネル第一級オブジェクトとして扱えるようになったまた、Relational Language並行実行逐次実行両方機能含んでいたが、Concurrent Prologは全て並行実行することを前提にすることで非常に単純化され仕様になった。Concurrent PrologはShapiroにより様々なバリエーション提案され分析されている。2つストリームマージ1つストリームにするマージプロセスのプログラム例を以下に示す。 merge([A|Xs],Ys,[A|Zs]) :- true | merge(Xs?,Ys,Zs).merge(Xs,[A|Ys],[A|Zs]) :- true | merge(Xs,Ys?,Zs).merge([],Ys,Ys) :- true | true.merge(Xs,[],Xs) :- true | true. Concurrent Prologでは、中断メカニズムとして読み出し専用標記 (Read Only Annotation)を用いる。読み出し専用標記は"?"で表され任意の変数付与することができる。読み出し専用変数変数以外の項に具体化しようとする試み中断させられる。つまり、読み出し専用標記付加され変数へのアクセス入力モードだけが許される。これにより変数具体化されるまで待つという同期と、変数毎のデータ入出力方向性指定とができる。また、ガード実行(ヘッドガード部実行)で行われた変数への書き込みは、その後失敗により変更される可能性があるため、どれか1つの節がコミットされるまで他のプロセス公開されない。つまりConcurrent Prologのガードには制約追加を行うTell部(Atomic Tell)が含まれる。Concurrent Prologでは、ガード実行時に節ごとで変数の値が異な多重環境管理する必要があり、全ての節の並行実行を行う際に管理複雑になる言語の特徴を以下にまとめる。 * 同期表現方法 読み出し専用標記 (変数単位指定)* 制約入出力 Blocking AskAtomic Tell* プロセス間通信 任意の項を使用可能* 実行形態 並行実行* その他の特徴 言語仕様が単純、多重環境管理が必要、Atomic Tellにより表現力が高い

※この「Concurrent Prolog」の解説は、「並行論理プログラミング」の解説の一部です。
「Concurrent Prolog」を含む「並行論理プログラミング」の記事については、「並行論理プログラミング」の概要を参照ください。

ウィキペディア小見出し辞書の「Concurrent_Prolog」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Concurrent_Prolog」の関連用語

Concurrent_Prologのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Concurrent_Prologのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのConcurrent Prolog (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの並行論理プログラミング (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS