Ich bin auf der Suche nach Forschungsarbeit oder einer anderen Publikation, die verschiedene abstrakte Maschinen (mehr als eine) für die Ausführung von Prolog mit Prolog-Interpreter nicht auf abstact Maschinen vergleichen. Was ich bisher gesehen habe, ist, dass die Mehrheit der Implementierungen ihre Prolog-Interpreter auf Warren Abstract Machine zu basieren scheint, obwohl andere abstrakte Maschinen vorgeschlagen wurden (zB Vienna Abstract Machine,) und es gibt keinen allgemeinen Vergleich. Ich interessiere mich für den Vergleich der Effizienz (nicht Features), obwohl alle im Vergleich Dolmetscher sollte Constraint-Logik-Programmierung ermöglichen.Vergleich von abstrakten Maschinen für die Ausführung von Prolog
Antwort
Sie können Constraint-Logik-Programmierung auf herkömmlichen Prolog erstellen, wenn Sie einige Primitiven für einen gezogenen Constraint-Speicher und einige Primitiven für die Vereinheitlichung Hooks einführen. ZB:
SICStus Prolog: Zugeschrieben Variablen
http://sicstus.sics.se/sicstus/docs/3.7.1/html/sicstus_17.html
Jekejeke Minlog: Kleiner Solver
http://www.jekejeke.ch/idatab/doclet/prod/en/docs/15_min/10_docu/02_reference/04_examples/05_solver.html
http://www.jekejeke.ch/idatab/doclet/prod/en/docs/15_min/15_stdy/06_bench/10_examples/02_addensure/01_referensure.p.html
Natürlich können Sie die zusätzlichen Primitive als neue Befehle anzeigen können in die abstrakte Maschine. Aber in beiden Fällen sind die Primitive auf der Prädikat-Ebene hinzugefügt, so dass es die Frage aufwirft, ob es wirklich eine Notwendigkeit für eine abstrakte Maschine für Constraint-Logik-Programmierung gibt.
Natürlich finden Sie ein paar Vorschläge der Constraint Logik Programmierung abstrakte Maschinen sowie durch Google.
Bye
- 1. Ausgabe von Prolog-Ausführung speichern
- 2. Vergleich Prolog Listen
- 3. Prolog Verzögerung Ausführung des Textes
- 4. Scala Vergleich von Merkmal val Mitglied mit abstrakten Typ
- 5. Erhalten Sie Wiederholungsantworten beim Vergleich von Fakten in Prolog
- 6. Werkzeuge für die symbolische Ausführung von Binärdateien
- 7. Webserver für die Ausführung von PHP + Erlang
- 8. Zugänglichkeit von abstrakten Eigenschaften
- 9. von-Neumann-Maschinen und Lambdas
- 10. Softwareoptimierung für virtuelle Maschinen
- 11. Verwendung von Prolog = .. Prädikat
- 12. eindeutige Ergebnisse von Prolog
- 13. Verbinden von zwei vagabundierenden Maschinen
- 14. Entwickeln von abstrakten Syntax Baum
- 15. SML: Erstellen von abstrakten Datentypen
- 16. Mehrdeutige Vererbung von abstrakten Basisklassen:
- 17. Kommunikationspfad für virtuelle Maschinen
- 18. Ausführung von dispatch_async Ausführung (Swift)
- 19. verteilter Datenleser für mehrere Maschinen
- 20. Blattknoten von gerichteten Graphen - Prolog
- 21. Hilfe beim Lernen von Prolog
- 22. Web-basierte Anwendung für die Vergleich von 2 PDF-Dokumenten
- 23. Python: Best Practices für die Überprüfung von Validierungen im Vergleich
- 24. Unterscheidet sich die Netzwerkbandbreite auf Azure-Websites von virtuellen Maschinen?
- 25. Java-Bibliotheksklasse für die geplante Ausführung von "Callbacks"?
- 26. Optionen für die Ausführung von django mit Apache, mod_wsgi, Fenster
- 27. Planen von Python-Skripts für die Ausführung in AWS
- 28. Access Realm-Objekt von Diensten für die Ausführung der Transaktion
- 29. Wie kann ich Verzögerung für die Ausführung von Funktionen
- 30. Hardware/Software-Anforderungen für die gleichzeitige Ausführung von 5 VMs?
Siehe http://stackoverflow.com/questions/4478615/alternatives-to-the-wam/4504325 Es ist nicht, was sonst löschen Sie durch einen Vergleich bedeuten könnte. Was Sie mit "Ausführung von Prolog mit Prolog-Interpretern, die nicht auf abstrakten Maschinen basieren" meinen, ist mir nicht klar: Jede Implementierung basiert auf einer abstrakten Maschine. – false
@false, ich kann Prolog Interpreter mit C++ schreiben und dann wird es nicht auf einer abstrakten Maschine basieren. Und im Vergleich meine ich zum Beispiel zu testen, wie effizient (in Bezug auf Rechenzeit, Speicherverbrauch) jeder Interpreter arbeitet. –
Auch dann verwenden Sie eine abstrakte Maschine. Es müssen noch viele Entscheidungen getroffen werden. Denken Sie an Backtracking/Trailing. – false