Здається, що написання Декларативної програми SQL
дуже популярне в імперативному програмуванні . Однак також здається, що написання Декларації Prolog
могло б врятувати багато складності, але це не дуже часто.
Чи є історичний прецедент цієї очевидної переваги SQL над Prolog?
Якщо причиною є недостатня підтримка рідних мов імперативними мовами, то чи можна відповісти, чому мовознавці не вважають корисним 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.
Наступний пункт цілі запитує набір даних, щоб з'ясувати, коли Джон обидва викладав логіку та був професором :
:- teaches(john, logic, T), rank(john, professor, T).
Результат:
2010 ≤ T, T ≤ 2012.
У наведеному вище прикладі буде легко SQL
отримати такий же результат. Але припустимо, що у вас є ці дані в Array
. Тоді не так просто отримати однакові результати, використовуючи SQL
. Що стосується даних, що зберігаються в масиві, я вважаю, що код Prolog буде простіше писати та підтримувати.