我需要開始學習Prolog爲我的工作。良好的IDE開始與序言
我以前沒有使用過Prolog,我的公司需要構建一個使用Prolog的程序。
因此該程序將在商業上使用。
所以一些問題:
1)Prolog是否使用編譯器來編譯程序。像gcc一樣爲c?
2)Prolog有商業標準嗎?我只聽說過SWI Prolog。
3)我一直在Linux上使用GNU Emacs多年。我正在考慮使用Prolog.el包?對此有何評論?
非常感謝任何答案,
我需要開始學習Prolog爲我的工作。良好的IDE開始與序言
我以前沒有使用過Prolog,我的公司需要構建一個使用Prolog的程序。
因此該程序將在商業上使用。
所以一些問題:
1)Prolog是否使用編譯器來編譯程序。像gcc一樣爲c?
2)Prolog有商業標準嗎?我只聽說過SWI Prolog。
3)我一直在Linux上使用GNU Emacs多年。我正在考慮使用Prolog.el包?對此有何評論?
非常感謝任何答案,
我熟悉的最精巧的Prolog IDE是基於Eclipse的Amzi IDE!序言。這是一個商業產品,但IDE可以在Student Edition中免費下載和使用。它對於Prolog開始的程序員來說可能是理想的。免責聲明:我可能會有偏見,因爲我在Amzi!的支持論壇提供了大量的免費建議。我認爲還有一個開源的Eclipse插件,它也支持一些開源的Prolog實現。 更新(2016年5月)Amzi! Prolog v.10現在使用類似MIT的許可證become open source。
雖然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.
我知道很多程序員對GNU EMACS的Prolog模式高度評價。不過,我認爲初學者可以從集成的調試器/編輯器(如Amzi)中受益! Prolog提供。 SWI-Prolog基於XPCE構建了一個圖形化IDE,這是圖形界面庫SWI-Prolog爲跨平臺開發選擇的。幾乎所有的程序員編輯器都會爲Prolog提供語法高亮顯示,並安裝正確的定義文件。
@AndersonGreen:看起來你從Google搜索結果頁面發佈了一個鏈接,這可能不是你想要做的。 – hardmath 2016-05-17 03:13:49
還有另一個名爲[Prolog Studio]的Prolog IDE(http://interprolog.com/interprolog-studio/)。 – 2016-05-17 14:51:02
你通常可以編譯你的prolog項目。但是,根據您使用的prolog環境,它可能是中間代碼而不是直接可執行的代碼。 SWI Prolog和Sicstus prolog都允許生成此表單的可執行文件(將解釋器與您編譯的中間代碼一起嵌入)。 其他類似Arity Prolog/32的序列直接編譯爲x86可執行文件。 Wikipedia上有一個頁面,其中包括各種序言系統。
有一個prolog標準。然而,幾乎所有的prolog系統都將基本兼容,只需稍作更改即可將代碼從一個prolog系統移植到另一個prolog系統。
除了gusbro已經說過的東西之外:我認爲SWI-Prolog是最好的學習Prolog。它可能不是最快的實現方式,但有很多響鈴,比如命令行編輯和內置Emacs編輯器,它是免費軟件,它很容易安裝在Windows和Linux(以及Mac OS X我也認爲)。它像虛擬機的字節碼編譯器一樣實現,就像大多數Prolog一樣;即使是那些產生本機代碼的人也經常在某個時候使用虛擬機。
Prolog的基礎知識在實現中基本相同;非標準擴展(如額外的庫,操作系統接口,約束編程等)往往有點不同。
存在各種Prolog-Java和Prolog-C#接口接口。 SWI具有允許其用作Web服務器的擴展。
SICStus Prolog有一個IDE based on Eclipse。 SICStus IDE具有許多高級功能,這些功能在競爭產品中無法找到,無論是免費還是商業用途。除此之外,它可以在您鍵入時檢測語法錯誤和其他常見錯誤,這對初學者尤其有用。
SICStus也具有Emacs模式,但它不提供基於Eclipse的IDE的所有功能。
你可以從home page下載評估SICStus Prolog。
我有偏見,我是SICStus Prolog開發人員之一,也是SICStus Prolog IDE的開發人員。
我正在使用IDE中內置的swi-prolog進行商業開發。
根據您的操作系統,您可能需要先從swipl-win.exe後或xpce 得到圖形環境
如果你習慣在emacs的環境中,你應該嘗試使用Ciao的分配工作。它有許多有趣而強大的功能,庫,也是GNU LGPL許可證。高度記錄和支持。 轉至http://ciaohome.org/
我正在使用名爲PDT的eclipse IDE插件。安裝相當簡單,我認爲這是一個很好的環境。安裝後,您可以按照「getting started page」中的說明完成安裝並啓動並運行。
我很感興趣。你的建築是什麼樣的程序?你會從頭開始構建一切,還是需要與現有代碼進行接口? – 2011-03-12 13:41:08
你好,很好的問題。我將從頭開始構建一切,只是爲了增加一些額外的樂趣。我將不得不與一些C共享庫進行交互。所以我將不得不註冊一些回調函數,以便我的prolog應用程序可以從c庫中接收事件。所以我需要研究如何做到這一點。謝謝。 – ant2009 2011-03-13 07:30:45
SWI-Prolog有幾個C代碼接口;其中有一個SICStus兼容層。 – 2011-03-13 10:31:59