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

GNU Emacs 23.2.1
Fedora xfce 14

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

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

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

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

Нужно ли мне также загружать некоторый интерпретатор или компилятор для 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

Я загрузил пролог и поместил его в следующий каталог:

~/.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, я получаю параметры пролога.

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

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

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

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

Ответ 1

Вы не используете предполагаемый расширенный 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, и он должен предоставить вам меню со многими дополнительными параметрами. (Попробуйте 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 см. Использование SWI-Prolog с GNU Emacs.

Ответ 2

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

  • Повторяя, что 20 марта написал 'mat', используйте `add-to-list 'вместо` setq':

    (add-to-list 'load-path "~/.emacs.d/site- lisp/пролог/" )

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

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

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

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

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

    Если вы не отключили меню, тогда для входа в меню пролога необходимо ввести пункт меню для пролога.

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

Ответ 6

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

Ответ 7

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

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

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

Ответ 8

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

emacs.