12
GNU Emacs 23.2.1
Fedora xfce 14

I starting to get into Prolog, and I want to use my emacs as the IDE for programming in Prolog.

Currently I use emacs for c/c++. But not sure how to get started with Prolog. I know that emacs has a built in library for programming in emacs. However, I have researched and found it is feature less, i.e. no syntax highlighting, indention, etc.

So I have download the emacs prackage Prolog.el. I have loaded this library using M-X Load-library.

However, I am not sure what to do after that. How do I compile my prolog files? In the menu of the emacs IDE it has nothing for Prolog.

Do I also need to download some interpretor or compiler for Prolog? Is there an emacs command for compiling? I normally use make in emacs when compiling c code.

I did a yum search prolog and got these results, so with all these choices which one do I need?:

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

Many thanks for any suggestions,

================== EDIT =====================

I have installed the following pl.x86_64

I have download the prolog.el and put it the following directory:

~/.emacs.d/site-lisp/prolog/prolog.el

And I have configured my emacs with the following:

;;; 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))

So when I save a file as *.pl I get the prolog menu options.

So I write some prolog code and from the prolog menu, I select Run interactive prolog session

I get a second blank buffer open which says (Inferior Prolog:run Shell-Compile)

However, I am not sure what I need to do at this stage. How do I compile and run the prolog files?

Many thanks for any further support.

4

8 に答える 8

12

prolog.elロードパスが間違っているため、意図した高度なを使用していません。それは読むべきです:

(setq load-path (cons "~/.emacs.d/site-lisp/prolog/" load-path))

prolog.elパスの最後から削除したことに注意してください。実際には、次のように読む方がよいでしょう:

(リストに追加 'load-path "~/.emacs.d/site-lisp/prolog/")

次に Emacs を再起動すると、さらに多くのオプションを含むメニューが表示されます。C-h v prolog-mode-version(詳細モードでのみ動作し、バージョン番号を表示する を試してください。)

次にC-c C-b、バッファなどを調べてみることができます。Emacsバッファでクエリを直接評価できるediprologの使用も検討してください。また、最近の Emacs バージョンでは、高度な Prolog モードのバリアントが新しいデフォルトになっていることにも注意してください。ただし、残念ながら、深刻なリグレッションと欠陥が含まれているため、Stefan Bruda によって維持されている元のバージョンをお勧めします。

https://bruda.ca/emacs/prolog_mode_for_emacs

Prolog と Emacs の詳細については、 Using SWI-Prolog with GNU Emacs を参照してください。

于 2011-03-20T20:14:00.733 に答える
8

SWI-Prolog、GNU-Prolog、YAP などの Prolog 環境が必要です。SWI は非常に一般的に使用されていると思いますが、他より優れているかどうかはわかりません。Prolog ファイルを実行するためにコンパイルする必要はありません。Prolog はインタープリター (場合によっては対話型コンパイラー) として機能します。ファイルを Prolog 環境にロードするには、それを参照する必要があります。Prolog モードの場合、emacs は でそれを行うことができますC-c C-f。Prolog シェルから直接入力することもできますconsult(File)

于 2011-03-13T08:54:10.593 に答える
3

素敵な emacs モードの別の代替手段はCiaoです。

于 2011-03-24T21:45:04.360 に答える
2
  1. prolog.pl のインストール手順をよくお読みください -- http://bruda.ca/emacs-prolog/install.html

  2. 「mat」が 3 月 20 日に書いたことを反映して、「setq」の代わりに「add-to-list」を使用します。

    (リストに追加 'load-path "~/.emacs.d/site-lisp/prolog/")

    これは "現代的な" 用法であり、`setq' の構造よりも少しわかりやすいはずです。

  3. bruda.ca の prolog.el コードを注意深く読んでいませんが、少し古くなっているように見えます。ただし、GNU Emacs に含まれるコードよりも多くの機能を備えているようにも見えます。追加機能がコードの古さを上回るかどうかはわかりません。bruda.ca コードのコメントに記載されているように、bruda.ca コードは GNU Emacs prolog.el の以前のバージョンから派生しているようです。

  4. 「load-path」変数の値を修正すると (環境変数 PATH に似ています)、prolog.el は正しくロードされます。prolog.el のドキュメント ファイルがないため、プロローグ モードの探索を開始するために使用できる Emacs コマンドを次に示します。

    Ch m -- これにより、prolog-mode 用に定義されているキー バインドと、有効になっているその他のマイナー モードを一覧表示するヘルプが表示されます。

    Ch a prolog -- これは、prolog-mode (prolog.el) によって定義された (対話型) コマンドを一覧表示するヘルプを表示します。

    メニューをオフにしていない場合は、プロローグ モードでファイルを開くたびに、プロローグのメニュー エントリを使用できるはずです。

  5. 最後に、常に prolog.el を読み取ります (少なくとも、ファイルの先頭にある説明コメント)。(ファイルの後半は実験的なコードとしてリストされています。) これを更新して、GNU Emacs に含まれている prolog.el に追加できるとよいでしょう。

于 2011-03-26T19:21:19.350 に答える
2

より完全なプロローグ モードは、ここで見つけることができます: (X)Emacs のプロローグ モード .el ファイルで文字列 prolog-mode-keybindings を検索するか、プロローグ モードで Ch b を実行すると、利用可能なものが表示されます。

pl.x86_64 をインストールする場合: PceEmacs と呼ばれる SWI Prolog 組み込みエディターも使用できます。こちらを参照してください: SWI-Prolog 組み込みエディター: PceEmacs SWI Prolog は非常に完成度が高く、グラフィカル デバッガーに加えてテキスト ベースのデバッガーが含まれています。 tracerと独自の GUI システムProlog 用の XPCE GUI システムと多くのライブラリ。それは探索のための素晴らしいプロローグです。代わりに Emacs で SWI Prolog を使用する場合は、 GNU-Emacs で SWI-Prolog を使用するセットアップを次に示します。

于 2011-03-13T11:42:16.877 に答える
1

Prolog にはコンパイラが必要なので、リストされているコンパイラのいずれかをインストールする必要があります。次に、Makefile を作成し、 を介して呼び出すとしM-x compileます。

于 2011-03-13T07:44:28.250 に答える
1

Emacs パッケージ マネージャーを使用している場合はM-x package-install RET prolog、 と入力して Emacs をリロードします。

シンプルで機能します。

私は Fedora 15 を使用していますが、Emacs は独自のオペレーティング システムです。

于 2011-08-01T02:35:13.690 に答える