Yazma gibi görünüyor Declarative SQL çok popüler olan Emir Programlama . Ancak, aynı zamanda yazılı görünüyor Declarative Prolog karmaşıklık tasarrufu yapabilirsiniz ama bu çok yaygın değildir.
Prolog yerine SQL'in bu belirgin tercihi için tarihsel bir emsal var mı?
Nedeni Zorunlu diller tarafından yerel desteğin bulunmaması ise , dil yaratıcılarının Prologilk etapta yerel olarak desteklemeyi neden yararlı bulamadıklarını cevaplamak mümkün müdür ?
Bazı spesifik örnekler sunmak için:
Örnek 1
Bir kredi başvurusunun değerlendirilmesi, yalnızca birkaç satır kodlu sorgu Prologgibi SELECT/JOINbirkaç satır kod olabilir SQL, ancak avantajı o kadar açık değildir SQL.
Örnek 2
İşte başka bir örnek problem ve Prolog çözümü. Aşağıdaki kısıtlama mantık programı, john'un öğretmen olarak tarihinin basitleştirilmiş bir veri kümesini temsil eder :
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.
Aşağıdaki hedef fıkra zaman john hem öğretilen öğrenmek için veri kümesini sorgular mantığı ve oldu profesörü :
:- teaches(john, logic, T), rank(john, professor, T).
Sonuç:
2010 ≤ T, T ≤ 2012.
Yukarıdaki örnekte SQLaynı sonucu elde etmek kolay olacaktır . Ancak, bu verilerin bir Array. O zaman aynı sonuçları kullanarak o kadar kolay değil SQL. Ve bir dizide saklanan veri durumunda, Prolog kodunun yazılması ve bakımı daha kolay olacağına inanıyorum.