Ich habe noch nichts über die Verwendung einer logischen Programmiersprache (wie Prolog) in der Softwareindustrie gehört und weiß auch nichts über deren Verwendung in Hobby-Programmen oder Open-Source-Projekten. Es (Prolog) wird jedoch in gewissem Umfang als akademische Sprache verwendet (warum wird es im akademischen Bereich verwendet?).
Deshalb frage ich mich, warum Sie Logikprogrammierung verwenden sollten und warum nicht? Warum wird es in der Branche nicht nachweisbar genutzt?
Wir haben damit Parser erstellt. Es war einfacher, damit zu arbeiten als mit Lex / Yacc.
Das ist nicht zu beantworten. Was bedeutet "nachweisbar"? Wer muss das Erkennungsprotokoll erhalten?
http://www.meridiansystems.com/landing/ppc/prolog/getvideo.asp
Fragen Sie Meridian Software nach ihrem Prologangebot, wenn Sie Fakten wünschen.
Es gibt jedoch einige Eintrittsbarrieren, die ich erlebt habe.
Erstens kann der Prolog langsam sein. Wenn es viele Kandidatenregeln und keine einfachen Ausschneidevorgänge gibt, um den Suchraum einzuschränken, kann es eine Weile dauern, bis etwas erledigt ist.
Zweitens ist Prolog nicht prozedural oder funktional, so dass viele Programmierer es ablehnen, es zu verwenden. (Interessanterweise verzichten einige Programmierer auch auf die Verwendung von SQL. Außerdem werden einige Programmierer widerstrebend SQL verwenden und seltsame Dinge wie das Vermeiden von Verknüpfungsoperationen ausführen oder behaupten, dies
COUNT(*)
sei magisch ineffizient.)Drittens erfordert der Prolog ein ziemlich klares Nachdenken über die verschiedenen Fälle. Prozedurale Programmierung kann schlampig sein und trotzdem zuverlässig funktionieren. Nicht ausführbare Anweisungen sind zulässig.
Das Folgende ist in den meisten Kreisen akzeptabel.
Diese Art des düsteren Denkens bringt Sie im Prolog in Schwierigkeiten.
quelle
Ein Problem ist, dass Prolog nicht wirklich in Prädikatenlogik erster Ordnung programmiert, was rechnerisch nicht umsetzbar ist. Daher ist es eine Vereinfachung.
In der Logik kann ein Satz als wahr, falsch oder in keiner Weise bewiesen werden. Prolog hat nur bewiesen und nicht bewiesen, "nicht bewiesen" bedeutet typischerweise falsch. Darüber hinaus kann die Reihenfolge der Prolog-Klauseln die Ausführung beeinflussen, was bei logischen Klauseln nicht der Fall ist. In dem Kurs, in dem ich es verwendet habe, habe ich angefangen, Prolog mehr als eine logische Sprache als eine Sprache für die Mustererkennung zu verstehen.
Daher hängt die Prolog-Programmierung weniger von der logischen Korrektheit als von der Prolog-Sprache selbst ab. In mancher Hinsicht ist es eine nützliche Sprache, aber sie ist weit entfernt vom Mainstream und hat nicht die Tool- und Community-Vorteile einer Sprache wie C ++.
quelle