0

The Art of Prologの紹介で、Sterling と Shapiro は、並列処理、並行処理、およびロジック プログラミングについての議論を別の本に任せています。私の質問は、そのようなリソースがあるかどうかです:

[the] 並列コンピューターの可能性は、ロジック プログラミング モデルで利用できると思われる並列処理と組み合わされて、Prolog を並列で実行し、新しい並列プログラミング言語を開発するための多くの試みにつながっています。論理プログラミング計算モデル。ただし、これは別の本 (The Art of Prolog、p. xx) の主題です。

Google で検索すると、何百もの研究論文や論文に加えて、Mercury の Prolog と同時実行ライブラリの並列実装が見つかりました。しかし、パラグラフの 2 番目の部分でリソースを見つけるのは困難です。並列プログラミングと、ロジック プログラミング言語の実行モデルに基づくプログラミング言語についてです。これらのトピックに関する適切なリソースはありますか? 並列および並行ロジック プログラムのコンパイル作成に関する参考文献に特に興味があります。

4

1 に答える 1

1

Prolog では、非決定性と並行性の両方を持つことができます。非決定的とは、通常、統一と後戻りとして説明されるものです。Prolog 句が暗黙のambステートメントでいっぱいであることが想像できます。並行性が論理プログラミングでもサポートされていることはあまり知られていません。

しかし今日では、ロジック プログラミング内のトレッドのみを使用する可能性があります。これは、スレッドを介して findall を実装する例ですこれは、コレクションに対してあらゆる種類のタスクを実行するように改造したり、分散型人工知能に向けたエージェント ネットワークを生成したりすることもできます。

Prolog 内のスレッド化をサポートする一連の ISO 標準述語の提案さえあります。これらの述語は、同期およびキューイングのプリミティブもカバーします。しかし、もっと重要なのは、軽量の Prolog ベースの Web サーバーが機能しないことです。マルチスレッドの Prolog システムはありませんでした。

ISO/IEC DTR 13211–5:2007 Prolog マルチスレッド サポート
http://logtalk.org/plstd/threads.pdf

于 2016-07-03T10:18:04.173 に答える