2011-03-11 69 views
28

我需要開始學習Prolog爲我的工作。良好的IDE開始與序言

我以前沒有使用過Prolog,我的公司需要構建一個使用Prolog的程序。

因此該程序將在商業上使用。

所以一些問題:

1)Prolog是否使用編譯器來編譯程序。像gcc一樣爲c?

2)Prolog有商業標準嗎?我只聽說過SWI Prolog。

3)我一直在Linux上使用GNU Emacs多年。我正在考慮使用Prolog.el包?對此有何評論?

非常感謝任何答案,

+0

我很感興趣。你的建築是什麼樣的程序?你會從頭開始構建一切,還是需要與現有代碼進行接口? – 2011-03-12 13:41:08

+0

你好,很好的問題。我將從頭開始構建一切,只是爲了增加一些額外的樂趣。我將不得不與一些C共享庫進行交互。所以我將不得不註冊一些回調函數,以便我的prolog應用程序可以從c庫中接收事件。所以我需要研究如何做到這一點。謝謝。 – ant2009 2011-03-13 07:30:45

+2

SWI-Prolog有幾個C代碼接口;其中有一個SICStus兼容層。 – 2011-03-13 10:31:59

回答

9
  1. 我熟悉的最精巧的Prolog IDE是基於Eclipse的Amzi IDE!序言。這是一個商業產品,但IDE可以在Student Edition中免費下載和使用。它對於Prolog開始的程序員來說可能是理想的。免責聲明:我可能會有偏見,因爲我在Amzi!的支持論壇提供了大量的免費建議。我認爲還有一個開源的Eclipse插件,它也支持一些開源的Prolog實現。 更新(2016年5月)Amzi! Prolog v.10現在使用類似MIT的許可證become open source

  2. 雖然SWI-Prolog是開源的(GPL),但可以用它開發商業應用程序,就像其他一些開源的Prolog實現,如GNU Prolog和YAP一樣。除了Amzi! Prolog還有其他幾種商業產品。Visual Prolog與Prolog的ISO標準不同,大多數Prolog程序員不認爲它是「真正的序言」。 SICStus Prolog是符合ISO標準的商業Prolog實施。還有一些其他類似Prolog的,但有大量的擴展,如ECLiPSe(不要與IDE混淆)和Mercury。多年來Prolog的一些商業實現已經過時,如IF Prolog被MINERVA所取代。這裏的 a list of implementations from 2006.

  3. 我知道很多程序員對GNU EMACS的Prolog模式高度評價。不過,我認爲初學者可以從集成的調試器/編輯器(如Amzi)中受益! Prolog提供。 SWI-Prolog基於XPCE構建了一個圖形化IDE,這是圖形界面庫SWI-Prolog爲跨平臺開發選擇的。幾乎所有的程序員編輯器都會爲Prolog提供語法高亮顯示,並安裝正確的定義文件。

+0

@AndersonGreen:看起來你從Google搜索結果頁面發佈了一個鏈接,這可能不是你想要做的。 – hardmath 2016-05-17 03:13:49

+0

還有另一個名爲[Prolog Studio]的Prolog IDE(http://interprolog.com/interprolog-studio/)。 – 2016-05-17 14:51:02

3

你通常可以編譯你的prolog項目。但是,根據您使用的prolog環境,它可能是中間代碼而不是直接可執行的代碼。 SWI Prolog和Sicstus prolog都允許生成此表單的可執行文件(將解釋器與您編譯的中間代碼一起嵌入)。 其他類似Arity Prolog/32的序列直接編譯爲x86可執行文件。 Wikipedia上有一個頁面,其中包括各種序言系統。

有一個prolog標準。然而,幾乎所有的prolog系統都將基本兼容,只需稍作更改即可將代碼從一個prolog系統移植到另一個prolog系統。

3

除了gusbro已經說過的東西之外:我認爲SWI-Prolog是最好的學習Prolog。它可能不是最快的實現方式,但有很多響鈴,比如命令行編輯和內置Emacs編輯器,它是免費軟件,它很容易安裝在Windows和Linux(以及Mac OS X我也認爲)。它像虛擬機的字節碼編譯器一樣實現,就像大多數Prolog一樣;即使是那些產生本機代碼的人也經常在某個時候使用虛擬機。

Prolog的基礎知識在實現中基本相同;非標準擴展(如額外的庫,操作系統接口,約束編程等)往往有點不同。

存在各種Prolog-Java和Prolog-C#接口接口。 SWI具有允許其用作Web服務器的擴展。

3

SICStus Prolog有一個IDE based on Eclipse。 SICStus IDE具有許多高級功能,這些功能在競爭產品中無法找到,無論是免費還是商業用途。除此之外,它可以在您鍵入時檢測語法錯誤和其他常見錯誤,這對初學者尤其有用。

SICStus也具有Emacs模式,但它不提供基於Eclipse的IDE的所有功能。

你可以從home page下載評估SICStus Prolog。

我有偏見,我是SICStus Prolog開發人員之一,也是SICStus Prolog IDE的開發人員。

2

我正在使用IDE中內置的swi-prolog進行商業開發。

根據您的操作系統,您可能需要先從swipl-win.exe後或xpce 得到圖形環境

0

如果你習慣在emacs的環境中,你應該嘗試使用Ciao的分配工作。它有許多有趣而強大的功能,庫,也是GNU LGPL許可證。高度記錄和支持。 轉至http://ciaohome.org/

1

我正在使用名爲PDT的eclipse IDE插件。安裝相當簡單,我認爲這是一個很好的環境。安裝後,您可以按照「getting started page」中的說明完成安裝並啓動並運行。

相關問題