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」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ




固有名詞の分類

このページでは「ウィキペディア小見出し辞書」からConcurrent Prologを検索した結果を表示しています。
Weblioに収録されているすべての辞書からConcurrent Prologを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からConcurrent Prolog を検索

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

辞書ショートカット

すべての辞書の索引

「Concurrent Prolog」の関連用語

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

   

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



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

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

©2025 GRAS Group, Inc.RSS