プログラミング言語/論理型言語
論理型言語
編集[TODO: Icon への言及]
論理型言語(Logical Languages)は、Prologのように状態や問合わせの関係を記述する言語です。これらの言語では、問合わせに対してどのように答えるかは、実装と定理証明によって決定されますが、一般的には単一化(unification)の形式をとります。
Erlangは、並行性や分散性をサポートするために設計された関数型プログラミング言語であり、論理型言語としての側面も持っています。Erlangでは、Prologと同様にパターンマッチングや再帰的な処理が中心的な役割を果たしています。また、Erlangではメッセージングに基づく並行処理を実現するため、状態変更を最小限に抑える関数型プログラミングスタイルが採用されています。
その他の論理型言語としては、MercuryやDatalogがあります。Mercuryは、論理型プログラミングと関数型プログラミングの両方の特徴を持った言語であり、Datalogは、データベースクエリ言語として使用されます。