2014-05-17 36 views
8

我正在尋找研究論文或任何其他出版物,它們比較不同抽象機器(多於一個)用於執行Prolog與不基於抽象機器的prolog解釋器。到目前爲止,我所看到的大多數實現似乎都是基於他們的序言解釋器,但是其他抽象機器被提出(例如,Vienna Abstract MachineTree-Oriented Abstract Machine),並且沒有任何一般的比較。我對效率比較感興趣(而不是特性),儘管所有被比較的解釋器都應該允許進行約束邏輯編程。執行Prolog的抽象機器比較

+2

見http://stackoverflow.com/questions/4478615/alternatives-to-the-wam/4504325目前還不清楚,你可以通過比較平均什麼。 「使用不基於抽象機器的Prolog解釋器執行Prolog」對你來說意味着什麼我不清楚:任何實現都基於某種抽象機器。 – false

+1

@false,我可以使用C++編寫Prolog解釋器,然後它不會基於任何抽象機器。通過比較,我的意思是例如測試每個解釋器的工作效率(在計算時間,內存消耗方面)。 –

+1

即使你在使用抽象機器。仍然有很多決定要做。想想回溯/尾隨。 – false

回答

2

如果您爲跟蹤的約束存儲引入了一些基元併爲統一掛鉤引入了一些基元,則可以在普通prolog的基礎上構建約束邏輯編程 。例如:

SICStus序言:主變量
http://sicstus.sics.se/sicstus/docs/3.7.1/html/sicstus_17.html

Jekejeke Minlog:小求解
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

當然你也可以查看其他原語爲新的指令 抽象機器。但是,在上述兩種情況下,在謂詞級別上添加了 ,因此它引發了一個問題: 是否真的需要用於約束邏輯編程的抽象機器。

當然,你會發現一些約束邏輯編程 抽象機器以及通過谷歌的建議。

再見