Il semble que l'écriture déclarative SQL
soit très populaire dans la programmation impérative . Cependant, il semble également que l'écriture de Déclaratif Prolog
puisse économiser beaucoup de complexité mais ce n'est pas très courant.
Existe-t-il un précédent historique pour cette préférence apparente de SQL sur Prolog?
Si la raison est le manque de prise en charge native par les langues impératives , est-il possible de répondre pourquoi les créateurs de langues n'ont pas trouvé utile de prendre Prolog
en charge nativement en premier lieu?
Pour fournir des exemples spécifiques:
Exemple 1 L'
évaluation d'une demande de prêt peut ne prendre que quelques lignes de code Prolog
, comme la SELECT/JOIN
requête qui ne contient que quelques lignes de code SQL
, mais il semble que l'avantage ne soit pas aussi évident que SQL
.
Exemple 2
Voici un autre exemple de problème et la solution dans Prolog. Le programme de logique de contrainte suivant représente un ensemble de données simplifié de l' histoire de John en tant qu'enseignant:
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.
La clause d'objectif suivante interroge l'ensemble de données pour savoir quand John a à la fois enseigné la logique et était professeur :
:- teaches(john, logic, T), rank(john, professor, T).
Résultat:
2010 ≤ T, T ≤ 2012.
Dans l'exemple ci-dessus, il sera facile SQL
d'obtenir le même résultat. Mais supposons que vous ayez ces données dans un fichier Array
. Ensuite, il n'est pas aussi facile d'obtenir les mêmes résultats en utilisant SQL
. Et dans le cas de données stockées dans un tableau, je pense que le code Prolog sera plus facile à écrire et à maintenir.