Использование пролога с 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.