0.导言

因为学习人工智能的关系,最近需要学习Prolog,看的主要指导教程是Hyry的《Prolog和人工智能》[1],译自Amzi Prolog的帮助文件,这本书虽然在开头处推荐了Amzi Prolog作为编程环境,但是我作为一个被Visual Studio,Matlab惯坏的人,实在是无法习惯Amzi Prolog简陋的环境——它的编辑器没有语法高亮功能,没有自动缩进,更不要提什么自动补全或者查看定义这类的高级功能了,当然,Prolog这个语言比较特殊,像那些功能也确实比较难以实现,但是为什么解释器居然都不能按”↑”键来转到上一条命令,而且如果我”()”成对得打然后再在里面插字符还会报错?太坑了吧。

在网上搜索了下,有人推荐了七种Prolog的解释器/编译器[2],还有一篇文章比较了三种开源Prolog解释器[3],大致看了下,第一篇里面大力推荐了SICStus,好吧,下下来安装后发现,好吧,这仅仅是个解释器,和我理想中的IDE完全不搭界,而且那种惨白色的背景,而且还不支持必要的快捷键,但是好处是,起码可以用”↑”键来转到上一条命令,而且终于能让我成对的打”()”然后向里面插入字符了,此外,它的运行结果比Amzi Prolog要好看。除了上面两个,还看了下Visual Prolog,好吧,终于看到一个靠谱的IDE,可是,他是商业软件虽然有免费版,但是它的相关资源很丰富,特别是中文资源,不过在VanHeising的文章里说它使用相对复杂[1],介于现在是初学,所以还是先不要用那么专业的好了*……如果,出现什么解释器不同造成的编译错误,初学者往往很难处理。此外,Swi Prolog的界面看起来也不错,而且还有一个J-Prolog Editor可以作为Swi Prolog的编辑器[4],但是,VanHelsing和David都指出了Swi Prolog速度偏慢[2,3],所以也舍弃了,另外还有GNU Prolog,但是官方页面提供的下载链接无法成功下载[5],所以懒得试了。

在这么反复折腾之后最终决定还是自己搭建一个环境吧,关键是编辑器,因为解释器的话其实SICStus也就足够了。

脚注:
* Visual Prolog界面好看,中文资源丰富,其实是个不错的选择,当然介于Hyry的《Prolog和人工智能》是用Amzi Prolog写的,所以建议换本指导教程,比如《Visual Prolog边练边学》,在Visual Prolog官网有下载。

1.编辑器

要说到Windows下可用的编辑器,当仁不让要提到Vim,我很久很久以前曾经用过一阵gVim,但是当初用着是在不惯,加之有Visual Studio这种神器何苦要使Vim?现在,不得不又用回Vim了。

首先到Vim官方主页[6]下载gVim最新版,安装之,Vim自带Prolog的语法高亮模板,你也可以自行替换为别的语法高亮模板,比如Aleksandar Dimitrov的[7]。原始的主题,不是很好看,我一般喜欢黑底的编辑器环境,当然这个看个人喜好,在Vim的网站有多种主题,下载.vim文件后放到…\Vim\vimfiles\colors,然后在编辑-配色方案中选择即可,或者直接输入命令“colo 配色方案名”,比如colo evening,如果想设置为打开时自动设为这个配色方案,需要修改vim目录的_vimrc文件,在最下面加一行colo evening就OK。如果想打开行号,就再加一行,写set nu!。

关于Vim我水平并不高,对Vim有兴趣的童鞋可以再查阅其他相关资料。

不喜欢Vim或者想找一个更轻量级的编辑器的话可以考虑用Notepad++,不过Notepad++原生似乎不支持prolog[8],但是你可以通过自定义语言来实现对Prolog的支持。

clip_image001

2.解释器

SICStus没有中文版,不过它的设置也是在乏善可陈,确实不需要汉化,初学Prolog,我们需要做的,就是File-Consult进一个Prolog程序文件,Consult失败的话会提示错误在哪里,成功的话会显示已Consult **文件,用时多少msec,文件有多大这些信息。

SICStus有一些地方和Amzi不一样,比如动态编程需要加dynamic关键字,继续查询时除了输入”;”外还要加回车等等,在看书练习时需要稍加注意,但是我觉得还是值得的,毕竟输出的结果比Amzi聪明得多,Amzi经常出大量冗余的,重复的结果,让我实在受不了。

3.调试器

我还没有怎么试验SICStus的调试,但是光看着那简陋的菜单就没有让人调试的欲望,呃,我现在只知道Flags-Debugging-trace可以完成类似Amzi里的Debug。感觉……还好吧。

clip_image002

4.其他

当然,如果你对Eclipse熟悉的话也可以试试The Prolog Development Tool[10],或者Prolog Development Tools[11],对于熟悉Eclipse的童鞋,这是最好的选择了。

5.参考文献

[1] Hyry, Prolog和人工智能, http://hyry.dip.jp/tech/book/index/prolog
[2] VanHelsing, 七种Prolog解释器/编译器, http://blog.sina.com.cn/s/blog_494e45fe0100lh1v.html
[3] David Reitter,Different Prolog implementations – which one is the best?, http://www.david-reitter.com/compling/prolog/compare.html
[4] Julian Bartram, J – Prolog Editor, http://www.trix.homepage.t-online.de/JPrologEditor/
[5] Daniel Diaz, The GNU Prolog web site, http://www.gprolog.org/#download
[6] Vim online, http://www.vim.org/
[7] Aleksandar Dimitrov, prolog.vim/syntax/prolog.vim, https://github.com/adimit/prolog.vim/blob/master/syntax/prolog.vim
[8] Wikipedia, Notepad++, http://en.wikipedia.org/wiki/Notepad%2B%2B
[9] Swedish Institute of Computer Science, SICStus Prolog User’s Manual,
http://www.sics.se/isl/sicstuswww/site/documentation.html
[10] Tobias Rho, Lukas Degener, etc. The Prolog Development Tool – A Prolog IDE for Eclipse, http://sewiki.iai.uni-bonn.de/research/pdt/docs/v2.0/start
[11] Claudio Cancinos, Serrano Carolina, Prolog Development Tools, http://prodevtools.sourceforge.net/index.html

4 Thoughts on “Prolog学习环境搭建

  1. 上标全毁,哎,不知道新版的Live Writer能不能解决这个问题,要不然太难看了……

  2. 用查找替换工具给上标加了sup标签,勉强看吧……

  3. sublime 2 支持高亮SWI-Prolog和Eclipse Prolog的语法,搭配SWI-Prolog非常好用

Post Navigation