宣言 的プログラミングSQL
は、命令型プログラミングで非常に人気があるようです。ただし、Declarative を記述するProlog
ことで複雑さを大幅に節約できるようにも見えますが、これはあまり一般的ではありません。
PrologよりもSQLがこのように優先されるという歴史的な先例はありますか?
理由が命令型言語によるネイティブサポートの欠如である場合、言語の作成者がそもそもネイティブサポートProlog
が有用であるとは思わなかった理由に答えることは可能ですか?
特定の例を提供するには:
例1
ローンアプリケーションの評価は、ほんの数行のコードでProlog
あるSELECT/JOIN
クエリのように、ほんの数行のコードであるかもしれませんがSQL
、利点はそれほど明白ではないようですSQL
。
例2
別の問題例とPrologの解決策を次に示します。次の制約論理プログラムは、教師としてのジョンの歴史の簡略化されたデータセットを表しています。
teaches(john, hardware, T) :- 1990 ≤ T, T < 1999.
teaches(john, software, T) :- 1999 ≤ T, T < 2005.
teaches(john, logic, T) :- 2005 ≤ T, T ≤ 2012.
rank(john, instructor, T) :- 1990 ≤ T, T < 2010.
rank(john, professor, T) :- 2010 ≤ T, T < 2014.
次の目標節は、データセットを照会して、john が論理を教えて教授だった時期を見つけます。
:- teaches(john, logic, T), rank(john, professor, T).
結果:
2010 ≤ T, T ≤ 2012.
上記の例ではSQL
、同じ結果を簡単に取得できます。ただし、このデータがにあるとしますArray
。その場合、を使用して同じ結果を得るのは簡単ではありませんSQL
。そして、配列に保存されたデータの場合、Prologコードの方が簡単に記述して保守できると信じています。