Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие ЛР по ИИС.docx
Скачиваний:
15
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

1.3. Назначение и основные возможности swi-Prolog

SWI-Prolog является свободно распространяемой (англ. Free Software) реализацией (диалектом) языка программирования Пролог, которая практически полностью соответствует стандарту ISO4/IEC5 13211-1 «Информационные технологии. Языки программирования. Пролог. Часть 1. Общее ядро».

SWI-Prolog позволяет разрабатывать любые приложения, включая Web-приложения и системы параллельных вычислений, но основным направлением использования является разработка экспертных систем, программ обработки естественного языка, обучающих программ, интеллектуальных игр и т. п.

В табл. 2 приведены некоторые операции и предикаты SWI-Prolog, которые используются для иллюстрации примеров и потребуются для выполнения лабораторных работ.

Таблица 2

Некоторые операции и предикаты swi-Prolog

Операция / Предикат

Назначение

true

Истина

fail, false

Ложь

=

Для переменной, стоящей слева от операции:

  • свободной – присваивание без преобразования (вычис­ле­ния) выражения справа от операции;

  • связанной – сравнение без преобразования (вычисления) выражения справа от операции.

<, =<, >=, >

Арифметические (только для чисел) операции сравнения

=:=

Арифметическое равенство

=\=

Арифметическое неравенство

is

Для переменной, стоящей слева от операции:

  • свободной – присваивание с преобразованием (вычис­ле­нием) выражения справа от операции;

  • связанной – сравнение с преобразованием (вычислением) выражения справа от операции.

@<, @=<, @>=, @>

Операции сравнения для констант и переменных любого типа (чисел, строк, списков и т. д.)

==

Равенство констант и переменных любого типа

not(A)

Отрицание логического выражения A

read(A)

Чтение значения с клавиатуры и присваивание его переменной А

write(A)

Печать А на экран с установкой курсора после последнего напечатанного символа

writeln(A)

Печать А на экран с переводом курсора в начало следующей строки

nl

Перевод курсора в начало следующей строки

repeat

Предикат, выдающий новое истинное значение при возврате. Передоказываемый предикат

!

Предикат (cut, сократить), запрещающий возврат далее той точки, где он стоит

Программирование в SWI-Prolog возможно в разных вариантах:

  • с помощью стандартной offline-среды6 программирования (http://www.swi-prolog.org);

Рис. 1. Стандартная offline-среда программирования SWI-Prolog

  • с помощью offline-среды программирования SWI-Prolog-Editor (http://lakk.bildung.hessen.de/netzwerk/faecher/informatik/swiprolog/indexe.html);

Рис. 2. Среда программирования SWI-Prolog-Editor

  • с помощью стандартной online-среды7 программирования SWI-Prolog (http://swish.swi-prolog.org);

Рис. 3. Стандартная online-среда программирования SWI-Prolog

Дальнейшая работа со SWI-Prolog рассматривается на примере online-среды.