Использование пролога с emacs - PullRequest
10 голосов
/ 13 марта 2011
GNU Emacs 23.2.1
Fedora xfce 14

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

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

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

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

Мне также нужно скачать интерпретатор или компилятор для Пролога? Есть ли команда 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

Я скачал prolog.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, я получаю опции меню пролога.

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

Я открываю второй пустой буфер с надписью (Inferior Prolog:run Shell-Compile)

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

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

Ответы [ 8 ]

10 голосов
/ 20 марта 2011

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

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

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

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

Затем снова запустите Emacs, и он должен дать вам меню с большим количеством опций. (Попробуйте C-h v prolog-mode-version, который работает только в расширенном режиме и показывает номер версии.)

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

https://bruda.ca/emacs/prolog_mode_for_emacs

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

7 голосов
/ 13 марта 2011

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

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

  2. Чтобы повторить то, что «mat» написал 20 марта, используйте «add-to-list»вместо `setq ':

    (путь загрузки add-to-list' ~ / .emacs.d / site-lisp / prolog /")

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

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

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

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

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

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

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

2 голосов
/ 25 марта 2011

Еще одна альтернатива с хорошим режимом emacs - Ciao .

2 голосов
/ 13 марта 2011

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

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

1 голос
/ 01 августа 2011

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

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

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

1 голос
/ 13 марта 2011

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

0 голосов
/ 06 ноября 2016

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

emacs.
...