使用prolog与emacs

ant*_*009 11 emacs prolog emacs23

GNU Emacs 23.2.1
Fedora xfce 14
Run Code Online (Sandbox Code Playgroud)

我开始进入Prolog,我想使用我的emacs作为IDE在Prolog中进行编程.

目前我使用emacs进行c/c ++.但不知道如何开始使用Prolog.我知道emacs有一个用于emacs编程的内置库.但是,我已经研究过,发现它的功能较少,即没有语法高亮,缩进等.

所以我已经下载了emacs prackage Prolog.el.我已经加载了这个库M-X Load-library.

但是,我不知道在那之后该怎么做.如何编译我的prolog文件?在emacs IDE的菜单中,Prolog没有任何内容.

我是否还需要为Prolog下载一些解释器或编译器?是否有用于编译的emacs命令?我通常在编译c代码时在emacs中使用make.

我做了一个yum搜索序言并得到了这些结果,所以我需要的所有这些选择?:

gprolog.x86_64 : GNU Prolog is a free Prolog compiler
pl.x86_64 : SWI-Prolog - Edinburgh compatible Prolog compiler
pl-static.x86_64 : Static library for SWI Prolog
ppl-gprolog.x86_64 : The GNU Prolog interface of the Parma Polyhedra Library
ppl-gprolog-static.x86_64 : The static archive for the GNU Prolog interface of the Parma Polyhedra Library
ppl-swiprolog.x86_64 : The SWI-Prolog interface of the Parma Polyhedra Library
ppl-swiprolog-static.x86_64 : The static archive for the SWI-Prolog interface of the Parma Polyhedra Library
ppl-yap.x86_64 : The YAP Prolog interface of the Parma Polyhedra Library
yap.i686 : High-performance Prolog Compiler
yap.x86_64 : High-performance Prolog Compiler
Run Code Online (Sandbox Code Playgroud)

非常感谢任何建议,

==================编辑=====================

我安装了以下内容 pl.x86_64

我已下载prolog.el并将其放在以下目录中:

~/.emacs.d/site-lisp/prolog/prolog.el
Run Code Online (Sandbox Code Playgroud)

我已经使用以下内容配置了我的emacs:

;;; Prolog mode
(setq load-path (cons "~/.emacs.d/site-lisp/prolog/prolog.el" load-path))
(autoload 'run-prolog "prolog" "Start a Prolog sub-process." t)
(autoload 'prolog-mode "prolog" "Major mode for editing prolog programs." t)
(setq prolog-system 'swi) ; prolog-system below for possible values
(setq auto-mode-alist (append '(("\\.pl$" . prolog-mode))
                              auto-mode-alist))
Run Code Online (Sandbox Code Playgroud)

因此,当我将文件保存为*.pl时,我会获得prolog菜单选项.

所以我写了一些prolog代码,并从prolog菜单中选择 Run interactive prolog session

我打开了第二个空白缓冲区 (Inferior Prolog:run Shell-Compile)

但是,我不确定在这个阶段我需要做什么.如何编译和运行prolog文件?

非常感谢任何进一步的支持.

mat*_*mat 10

您没有使用预期的高级prolog.el,因为您的加载路径是错误的.它应该是:

(setq load-path (cons "~/.emacs.d/site-lisp/prolog/" load-path))
Run Code Online (Sandbox Code Playgroud)

注意我prolog.el从路径的末尾删除.实际上,它应该更好地阅读:

(add-to-list 'load-path  "~/.emacs.d/site-lisp/prolog/")

然后再次启动Emacs,它应该为您提供一个包含更多选项的菜单.(尝试C-h v prolog-mode-version,仅适用于高级模式,并显示其版本号.)

然后,您可以尝试C-c C-b查阅缓冲区等.还可以考虑使用ediprolog,您可以使用它直接在Emacs缓冲区中评估查询.另请注意,在最近的Emacs版本中,高级Prolog模式的变体是新的默认值,但不幸的是它带有严重的回归和缺陷,因此我推荐Stefan Bruda维护的原始版本:

https://bruda.ca/emacs/prolog_mode_for_emacs

有关Prolog和Emacs的更多信息,请参阅 在GNU Emacs中使用SWI-Prolog.


Lit*_*les 7

您需要Prolog环境,例如SWI-Prolog,GNU-Prolog或YAP.我认为SWI是非常常用的,但我不知道它是否比其他人更好.您不需要编译Prolog文件来运行它们 - Prolog可以作为解释器(在某些情况下是交互式编译器).要将文件加载到Prolog环境中,您需要查阅它.在Prolog模式下,emacs可以使用C-c C-f.您也可以直接从Prolog shell中输入consult(File).