我需要开始为我的工作学习Prolog。
我之前没有使用过Prolog,我的公司需要构建一个使用Prolog的程序。
因此该程序将在商业上使用。
所以有些问题:
1)Prolog是否使用编译器来编译程序。就像gcc为c做的那样?
2)Prolog有商业标准吗?我只听说过SWI Prolog。
3)我多年来一直在使用GNU Emacs和Linux。我在考虑使用Prolog.el包吗?对此有何评论?
非常感谢任何答案,
答案 0 :(得分:11)
我熟悉的最精心设计的Prolog IDE是基于Eclipse的Amzi IDE!序言。这是一个商业产品,但IDE可以在学生版中免费下载和使用。它可能是一个初学Prolog程序员的理想选择。免责声明:我可能有偏见,因为我在Amzi!的支持论坛上提供了大量免费建议。我认为有一个开源的Eclipse插件,它也支持一些开源的Prolog实现。 更新(2016年5月)Amzi! Prolog v.10现在become open source使用类似MIT的许可证。
虽然SWI-Prolog是开源的(GPL),但它可以用它开发商业应用程序,就像其他几个开源的Prolog实现一样,如GNU Prolog和YAP。除了Amzi! Prolog还有其他几种商业产品。 Visual Prolog与Prolog的ISO标准不同,大多数Prolog程序员都不认为它是“真正的prolog”。 SICStus Prolog是符合ISO标准的商业Prolog实现。还有一些其他类似Prolog的但有大量扩展,例如ECLiPSe(不要与IDE混淆)和Mercury。多年来,Prolog的许多商业实施已经过时,因为IF Prolog被MINERVA取代。这是2006年的 a list of implementations。
我认识很多程序员,他们高度评价GNU EMACS的Prolog模式。但是我认为初学者会从像Amzi这样的集成调试器/编辑器中受益! Prolog提供。 SWI-Prolog正在构建一个基于XPCE的图形化IDE,这是SWI-Prolog选择用于跨平台开发的图形界面库。几乎所有程序员编辑都会为Prolog提供语法高亮,并安装了正确的定义文件。
答案 1 :(得分:4)
SICStus Prolog有一个IDE based on Eclipse。 SICStus IDE具有许多竞争产品中没有的高级功能,免费或商业。除此之外,它还会在您键入时检测语法错误和其他常见错误,这对于初学者来说尤为重要。
SICStus也有Emacs模式,但它不提供基于Eclipse的IDE的所有功能。
您可以从home page下载对SICStus Prolog的评估。
我有偏见,我是SICStus Prolog开发人员之一,也是SICStus Prolog IDE的开发人员。
答案 2 :(得分:3)
您通常可以编译您的prolog项目。但是,根据您使用的prolog环境,它可能是中间代码而不是直接可执行代码。 SWI Prolog和Sicstus prolog都允许生成此表单的可执行文件(将解释器与您编译的中间代码一起嵌入)。 Arity Prolog / 32等其他序言直接编译为x86可执行文件。维基百科上有一个页面compares各种prolog系统。
prolog有ISO标准。但是,几乎每个prolog系统都会相互兼容,需要进行微小的更改才能将代码从一个prolog系统移植到另一个prolog系统。
答案 3 :(得分:3)
除了gusbro已经说过的内容:我认为SWI-Prolog是最好的学习方法。它可能不是最快的实现,但它有相当多的铃声和口令编辑和内置的类似Emacs的编辑器,它是免费的软件,它很容易在Windows和Linux上安装(我估计也是Mac OS X)。它被实现为虚拟机的字节码编译器,就像大多数Prolog一样;即使是生成本机代码的代码,通常也会在某些时候使用虚拟机。
Prolog的基础知识在实现中大致相同;非标准扩展,如额外的库,OS接口,约束编程等,往往会有所不同。
存在各种Prolog-Java和Prolog-C#接口接口。 SWI具有允许其用作Web服务器的扩展。
答案 4 :(得分:2)
我正在使用内置的swi-prolog进行商业开发。
根据您的操作系统,您可能需要从swipl-win.exe或xpce开始 获得图形环境
答案 5 :(得分:2)
我正在使用名为PDT的eclipse IDE插件。安装相当容易,我认为这是一个很好的环境。安装完成后,您可以按照" getting started page"完成安装并让您开始运行。
答案 6 :(得分:0)
如果您习惯在emacs环境中工作,则应尝试使用Ciao发行版。它有许多有趣和强大的功能,库,也是GNU LGPL许可证。高度记录和支持。 转到http://ciaohome.org/