Prolog言語とは何ですか?

プロローグは、ロジックに基づいたコンピュータープログラミング言語です。 ほとんどのコンピューター言語は、問題を解決するために必要な手順に基づいています。 一方、Prolog言語は、エンティティ間の論理的な関係を示す「宣言的な」言語です。 問題を解決する方法はコンピューターに任されています。 Prologという名前は、フランス語のPROgrammation en LOGique、つまりPROgramming LOGicに由来しています。

以下は、単純なPrologプログラムです。

祖先(F、C):-父(F、C)
祖先(P、Q):-父(P、R)、祖先(R、Q)
父(ジョン、ジム)。
父(ジム、ジェリー)。
父(ジェリー、ジェイソン)。
父(ジェリー、ジェフ)。
父(ジェイソン、ジョシュア)。

上記のプログラムは、真実を示しています。 FがCの父親である場合、FはCの祖先です。PがQの祖先であるRの父親である場合、PはQの祖先です。ジョンはジムの父です。 johnがjeffの祖先であるかどうかに関して問題のある質問が提示された場合、以下のように「はい」という応答が返されます。

?-祖先(john、jeff)。
はい

ジョシュアの先祖に関心がある場合、プログラムはすべての先祖を次のように表示します。

?-先祖(A、ジョシュア)
A =ジェイソン
A =ジェリー
A =ジム
A =ジョン

上記の両方の例で、プログラムは評価方法を教えていないことに注意してください。 たとえば、年配の人から始めて年配の人に働きかけるか、またはその逆を行うかは示されませんでした。 また、以下のように部品を交換します。

祖先(P、Q):-祖先(R、Q)、父(P、R)

左側が真になるためには、右側のこれらの部分が両方とも真である必要があるため、プログラムに違いはありません。

したがって、Prolog言語は、問題の解決方法ではなく、関係に焦点を当てています。 プログラムの実行中に、Prologは多くの真のステートメントを構築し、ナレッジベースを作成します。 上記の例では、ナレッジベースは、順不同で、祖先(ジョン、ジム)、祖先(ジム、ジェリー)、祖先(ジョン、ジェリー)、祖先(ジム、ジェイソン)、祖先(ジョン、ジェイソン)、等々。 このナレッジベースは、プログラムの実行中に構築を続けることができ、ソリューションを取得するために効率的に検索できます。 実行では、並列処理、複数のコンピューターによる同時実行を使用できます。

Prolog言語は多くの分野で使用されています。 それは、英語などの自然言語向けのシステムで始まりました。 自然言語は、人工知能の分野の1つです。 Prolog言語は、代数を含む記号数学でも使用されます。 他の多くのアプリケーションの中でも、定理の証明、エキスパートシステム、制御システムで使用されます。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?