Использование prolog с emacs

GNU Emacs 23.2.1
Fedora xfce 14

Я начинаю входить в Prolog, и я хочу использовать мой emacs в качестве IDE для программирования в Prolog.

в настоящее время я использую emacs для c/C++. Но не уверен, как начать работу с Prolog. Я знаю, что emacs имеет встроенную библиотеку для программирования в emacs. Однако я исследовал и обнаружил, что это функция меньше, т. е. нет подсветки синтаксиса, отступа и т. д.

Итак, я загрузил Пролог Emacs prackage.Эль. Я загрузил эту библиотеку, используя M-X Load-library.

однако я не уверен, что делать после этого. Как скомпилировать файлы prolog? В меню Emacs IDE нет ничего для Prolog.

мне также нужно загрузить некоторый интерпретатор или компилятор для Пролога? Есть ли команда emacs для компиляции? Обычно я использую make в emacs при компиляции кода C.

Я сделал пролог поиска 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

большое спасибо за любые предложения,

================== изменить =====================

Я установил следующее pl.x86_64

у меня есть скачать пролог.el и поместите его в следующий каталог:

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

и я настроил свой 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))

поэтому, когда я сохраняю файл как *.pl я получаю параметры меню prolog.

поэтому я пишу код пролога и из меню пролога выбираю Run interactive prolog session

Я вам второй пустой буфер открыт, который говорит (Inferior Prolog:run Shell-Compile)

однако я не уверен, что мне нужно делать на этом этапе. Как скомпилировать и запустить файлы prolog?

большое спасибо за дополнительную поддержку.

8 ответов


вы не используете предполагаемое advanced prolog.el, так как ваш путь загрузки неправильный. Следует читать:

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

обратите внимание, что я удалил prolog.el от конца пути. На самом деле, он должен еще лучше читать:

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

затем снова запустите Emacs, и он должен дать вам меню со многими другими параметрами. (Попробуй!--4-->, который работает только с расширенным режимом и показывает его номер версии.)

вы можете попробовать C-c C-b проконсультироваться с буфером и т. д. Также рассмотрите возможность использования ediprolog, С помощью которого вы можете оценивать запросы непосредственно в буфере Emacs. Обратите внимание также, что в последних версиях Emacs вариант режима advanced Prolog является новым по умолчанию, но, к сожалению, поставляется с серьезными регрессиями и недостатками, поэтому я рекомендую оригинальную версию, поддерживаемую Стефаном Бруда:

https://bruda.ca/emacs/prolog_mode_for_emacs

для получения дополнительной информации о Prolog и В Emacs, см. использование SWI-Prolog с GNU Emacs.


вам нужна среда Prolog, такая как SWI-Prolog, GNU-Prolog или YAP. Я думаю, что SWI очень часто используется, но я не могу сказать, лучше ли это, чем другие. Вам не нужно компилировать файлы Prolog для их запуска - Prolog может работать как интерпретатор (в некоторых случаях интерактивный компилятор). Чтобы загрузить файл в среду Prolog, вам нужно консультация его. В режиме Prolog emacs может сделать это с помощью C-c C-f. Вы также можете ввести непосредственно из оболочки Prolog consult(File).


более полный режим пролога можно найти здесь:режим пролога для (X)Emacs Если вы ищете .el файл для строки prolog-mode-keybindings или сделать C-h b в то время как в режиме prolog вы можете увидеть, что доступно.

Если вы устанавливаете pl.архитектуру x86_64: Вы также можете использовать встроенный редактор SWI Prolog под названием PceEmacs, см. здесь:встроенный редактор SWI-Prolog: PceEmacs SWI Prolog очень полный и включает в себя текстовый отладчик в дополнение к графическому отладчик графический трассировщик и своя собственная система GUI система графического интерфейса XPCE для Prolog плюс много библиотек. Это отличный пролог для исследования. Если вы хотите вместо этого использовать SWI Prolog с emacs, вот настройка использование SWI-Prolog с GNU-Emacs


  1. внимательно прочитайте инструкции по установке для prolog.pl -http://bruda.ca/emacs-prolog/install.html

  2. повторяя то, что " mat "написал 20 марта, используйте" add-to-list "вместо " setq":

    (добавить в список "load-path"~/.в Emacs.d / site-lisp/prolog/")

    Это" современное "использование и должно быть немного яснее для Вас, чем конструкция "setq".

  3. Я не читал пролог.el код от bruda.ca осторожно, но он выглядит немного устаревшим. Тем не менее, похоже, что он имеет гораздо больше функций, чем код, включенный в GNU Emacs. Я не знаю, будут ли дополнительные функции перевешивать возраст кода. Похоже, что Бруда.код ca является производным от более ранней версии GNU Emacs prolog.el, как указано в комментариях в bruda.код ca.

  4. после того, как вы исправили значение переменной "load-path" (это аналогично переменной среды PATH), prolog.el должен правильно загружаться. Потому что нет файла документации для prolog.el, вот некоторые команды Emacs, которые вы можете использовать для начала изучения режима prolog:

    C-h m -- отобразится справка по списку ключевых Привязок, определенных для режима prolog, а также любых других второстепенных режимов, которые могут иметь силу.

    C-h A prolog -- отобразится справка по списку (интерактивных) команд, которые были определены по prolog-mode (пролог.Эль.)

    Если вы не отключили меню, то запись меню для prolog должна быть доступна при каждом открытии файла в режиме prolog.

  5. наконец, всегда есть чтение пролога.Эль (по крайней мере, описательные комментарии в верхней части файла). (Вторая половина файла указана как экспериментальный код.) Было бы хорошо, если бы это можно было обновить и добавить в пролог.el, который включен в GNU В Emacs.


Другой альтернативой с хорошим режимом emacs является Чао.


вам нужен компилятор для Prolog, поэтому вам нужно установить один из перечисленных компиляторов. Затем, я полагаю, вы пишете Makefile и вызываете его через M-x compile.


Если вы используете диспетчер пакетов Emacs, вы можете ввести M-x package-install RET prolog, а затем перезагрузите Emacs.

простой и работает.

Я использую Fedora 15, но Emacs-это собственная операционная система.


перейдите в командную строку swi-prolog и введите:

emacs.