Программа пролог для linux

Обновлено: 06.07.2024

GNU Prolog — компилятор языка Prolog, распространяющийся по лицензии GNU GPL. Производительность GNU Prolog сравнима с коммерческими компиляторами (по скорости совсем немного уступает SICStus Prolog).

Разработка GNU Prolog началась в январе 1996 года под названием Calypso. В марте 1999 года Calypso (beta 7) был переименован в gprolog 0.9.0.

Особенности GNU Prolog

  • соответствует стандарту ISO Prolog (целочисленная/плавающая арифметика, потоки, динамический код, исключения)
  • множество расширений (глобальные переменные, поддержка выражений DCG, поддержка сокетов, интерфейс операционной системы)
  • более 300 встроенных предикатов
  • отладчик и низкоуровневый WAM отладчик
  • возможность автозаполнения атомов при редактировании в интерактивном интерпретаторе
  • мощный двунаправленный интерфейс между Prolog и C
  • компилятор генерирует автономные исполняемые файлы, не требующие для выполнения отдельной среды
  • простой компилятор из командной строки, обрабатывающий большое количество файлов: файлы Prolog, C, WAM и другие
  • прямая генерация машинного кода в 15 раз быстрее, чем wamcc + gcc.
  • большинство неиспользуемых встроенных предикатов не линкуются (чтобы уменьшить размер исполняемых файлов)

Поддерживаемые платформы

  • ix86 / GNU/Linux
  • ix86 / Win32 использующий Cygwin
  • ix86 / Win32 использующий MinGW
  • ix86 / Win32 использующий MSVC++
  • ix86 / SCO
  • ix86 / Solaris
  • ix86 / FreeBSD
  • ix86 / OpenBSD
  • ix86 / NetBSD
  • ix86 / Darwin (Mac OS X)
  • x86_64 / GNU/Linux
  • PowerPC / GNU/Linux
  • PowerPC / Darwin (Mac OS X)
  • PowerPC / NetBSD
  • sparc / SunOS (4.1.3 or higher)
  • sparc / Solaris
  • sparc / NetBSD
  • alpha / GNU/Linux
  • alpha / OSF1
  • mips / irix

Ссылки:

Примеры:

Hello, World!:

Этот пример не требует загрузки фактов или правил. Запрос выполняется в интерактивном режиме, и его результат выглядит следующим образом:

Hello, World!
yes

Следует отметить, что замена одинарных кавычек на двойные выводит строку как массив ASCII-кодов отдельных символов:

| ?- write("Hello, World!").
[72,101,108,108,111,44,32,87,111,114,108,100,33]

Факториал:

Как в GNU Prolog, так и в B-Prolog 12! не помещается в целочисленный тип данных, поэтому все значения после 11! неправильны. В SWI-Prolog переполнения не возникает.

Результат для GNU Prolog: compiling /home/nickolas/Desktop/progopedia/prolog/fact.pl for byte code…
/home/nickolas/Desktop/progopedia/prolog/fact.pl compiled, 3 lines read — 1372 bytes written, 5 ms

Результат для B-Prolog: consulting::fact.pl

0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
6! = 720
7! = 5040
8! = 40320
9! = 362880
10! = 3628800
11! = 39916800
12! = -57869312
13! = -215430144
14! = 205203456
15! = -143173632
16! = -143294464

Числа Фибоначчи:

Пример почти идентичен примеру для Poplog Prolog, за исключением синтаксиса подключения файла.

Квадратное уравнение:

Квадратное уравнение:

Этот пример соответствует стандарту ISO Prolog и использует встроенный предикат read/1 . Следует отметить, что при вводе термов этим способом после каждого терма следует ставить точку.

У меня есть интерес к игре и fuxing с prolog, я установил swi-prolog и добавил репозиторий, на всякий случай, если кто-то заинтересован в том, какие команды я использовал:

как на самом деле начать писать коды пролога на моей машине linux? для моего регулярного программирования я использую VIM для записи/редактирования / отладки и терминала для компиляции. Могу ли я использовать vim для написания пролога? Как скомпилировать или использовать интерпретатор пролога (я думаю, что это то, что называется)?

Да, вы можете использовать любой текстовый редактор, включая. НАПОР. После того, как вы написали исходный файл prolog, скажем, file.pl , вы можете загрузить его в swi-prolog следующим образом:

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

если вы хотите использовать программу prolog в пакетном режиме, вы можете использовать:

здесь goal - это цель / запрос, который вы хотите оценить. Обратите внимание, что в в этом случае вы не получите возможность запросить альтернативные решения.

на Ubunutu я начал использовать emacs, который, по крайней мере, делает подсветку синтаксиса:

(2 предложения emacs на этой странице^)

но теперь я использую пролог в гневе, я использую плагин Eclipse под названием PDT:

особенно полезно в режиме реального времени строка за строкой отладки и трассировки, так что вы можете шаг into, step over individual predicates, monitor variables names etc.. как и другая реальная IDE, которую вы найдете в eclipse.

вероятно, стоит только установить, если вы собираетесь использовать его много, так как установка-это много работы, но это отличная IDE.

но если вам нравятся Редакторы низкого уровня, такие как VIM, вам придется использовать инструменты отладки и трассировки, встроенные в swi-prolog, см.:

чтобы понять, как работает странный и красивый интерпретатор пролога, использование какого-то трассировщика является обязательным.

Я лично использую gprolog или swipl в интерпретируемой среде. Итак, вы пишете факты и правила в mydb.pl файл и откройте интерпретатор в том же каталоге. Как только появится приглашение, вы можете запросить

для загрузки базы данных. теперь вы можете увидеть предупреждения\ошибки или начать запрос изнутри интерпретатора пролога.

Prolog для Linux
Здравствуйте! Не могли бы вы подсказать, какую среду можно использовать для Ubuntu. Я пробовал.

Как настроить Prolog (GNU/Linux)
Всем привет. Возникла потребность научится языку Prolog, не не знаю как его настроить для удобной.

Разметка в Linux жесткого диска для дуалбут MS-DOS и Linux
У меня, значит, на стационарном старичке стоит жесткий на 2 Тб. Win XP такие цифры не знает, а вот.

GNU-Prolog специально создан для различных ОС семейства UNIX.
А вообще, у меня стоит Убунту и SWI-Prolog вполне нормально себя ведёт.
Даже XPCE работает.
Надо будет попробовать Turbo и Visual Prolog запустить. MINERVA is ISO-Prolog in 100% Java for Windows/98/NT/XP, Linux, Unix, executable as servlet, applet, standalone application or Java class library engine. SICStus Prolog is available under Windows XP/Vista/7, Linux, Solaris and Mac OS X. И еще тьма диалектов, которые можно найти в интернете самостоятельно По состоянию на данный момент есть версия Visual Prolog под Linux? Есть только для Windows. Но под wine работает нормально.

Что лучше для сервера сайта Arch Linux или Linux Debian ?
Подскажите пожайлуста что лучше для сервера сайта Arch Linux или Linux Debian ?

Установка Qt на Linux для кросс-компиляции: Linux 32/64 Windows 32/64
В силу объективных причин пришлось перейти на Linux, но столкнулся с проблемой установки окружения.


Как добавить приватный ключ SSH на linux машину для подключение к другому linux серверу
Как добавить приватный ключ SSH на linux машину для подключения к другому linux серверу? Короче.


Какую версию Linux лучше всего выбрать для начинающего юзера в Linux? И где скачать?
Хотелось бы освоится в Линуксе, какую лучше всего выбрать версию этой ОС и где можно скачать что бы.

Мне нужно написать некоторые программы Prolog для класса.

ОТВЕТЫ

Ответ 1

Режим пролога для (X) Emacs.

Ответ 2

Как уже упоминалось, вы можете использовать SWI-Prolog. Если вам нравится Eclipse, есть подключаемый модуль Eclipse, который интегрирует SWI-Prolog в Eclipse. Таким образом, у вас есть лучшее из обоих миров, например, функции SVN и т.д. Eclipse и графический отладчик SWI-Prolog. Стоит проверить.

Ответ 3

SWI-Prolog поставляется с отличными инструментами IDE, текстовым редактором Emacs-clone, интерактивным отладчиком, полной доступной справочной системой и документами. Попробуйте.

Ответ 4

Хорошим моментом для начала является использование режима Prolog по умолчанию для Emacs и добавленных выше описаний здесь. Вы также можете попробовать ediprolog, целью которого является более тесная интеграция Emacs-Prolog.

Ответ 5

Я не пробовал (в основном потому, что раньше я не думал сочетать слова "Prolog" и "NetBeans" ), но, похоже, Поддержка Prolog для NetBeans. Это не простой плагин, а учебник, в котором показано, как добавить поддержку Prolog в NetBeans.

Ответ 6

Ideone поддерживает Prolog. Вы можете использовать его в Интернете только с помощью браузера.

Ответ 7

Средства разработки Prolog (ProDT) - это интегрированная среда разработки Prolog (IDE), которая должна быть столь же насыщенной функциональностью, как и IDE Eclipse java, предоставляя разработчику единую среду, где он может контролировать разработку проекта Prolog из версии кода, выполнение теста и т.д.

Этот проект стоит на вершине проектов Eclipse, чтобы использовать его уже существующие функции и расширяемость и работает в любой среде, где работают Eclipse, включая окна, Linux и Mac OSX.

Он поддерживает основные интерпретаторы: SWI-пролог, пролог XSB, B-пролог

Надеюсь, вы сможете найти это полезным. )

Ответ 8

SPIDER - это IDE на основе Eclipse для SICStus Prolog. SICStus Prolog также имеет очень полезный режим Emacs.

Ответ 9

Ответ 10

Ответ 11

Прокси файл swi и расширение emacs предварительно установлены почти в каждом дистрибутиве Linux. Вы можете проверить это, используя, например, приведенные ниже команды и X11-совместимую (графическую) среду. Это должно открыть новое окно со встроенным клоном Emacs.

Ответ 12

Я просто использую Vim или jEdit. Пролог как язык на самом деле не поддается сильной поддержке IDE. Во-первых, он динамически набирается, что бросает огромный ключ в инструмент. С другой стороны, это логический язык, который означает, что "поток кода" (порядок, в котором вы создаете программу) является нелинейным. Существующие методы построения высокоразвитых IDE просто не применимы к такой парадигме.

Ответ 13

Вы можете использовать Gprolog, мы используем его в нашем классе. Используйте инструкцию ('filename') для загрузки базы данных.

Ответ 14

Честно говоря, я не вижу, чтобы "IDE" много помогала в прологе. Это поможет только найти синтаксические ошибки. Остальное - в процессе отладки и мысли.

Читайте также: