Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Язык программирования Пролог



Является представителем семейств языков логического программирования. Его особенности в сравнении с традиционными алгоритмическими языками:

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

язык Пролог предназначен не для решения вычислительных или графических задач, а для решения логических задач, для моделирования процесса логического умозаключения человека;

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

Программирование на Прологе включает в себя следующие этапы:

объявление фактов об объектах и отношениях между ними;

определение правил взаимосвязи объектов и отношений между ними;

формулировка вопроса об объектах и отношениях между ними.

Основные понятия языка:

Предикат – конструкция вида P(t, t, … t), выражающая какую-то связь между некоторыми объектами или свойствами объектов.

Факты – это предикаты с аргументами-константами, обозначающие отношения между объектами или свойства объектов, именованные этими константами.

Правила – логические формулы с заголовками и одной или несколькими подцелями-предикатами.

Вопрос – отправная точка логического вывода, происходящего при выполнении программы.

Пример 1.

В базе знаний используются два предиката: нравится и носит; и одно правило – крутойпарень.

Определим факты:

нравится(сергей, рэп)[31].

нравится(юрий, джаз).

носит(сергей, блейзер)[32].

носит(юрий, пиджак).

Определим правило

крутойпарень(Х):-нравиться(Х,рэп),носит(Х, блейзер)

Правило трактуется следующим образом: «если Х нравится рэп и он носит блейзер, то он крутой парень».

Сформулируем вопрос

? – крутойпарень(юрий)[33].

База данных сформулирует ответ «Нет».

На вопрос

? – крутойпарень(А)[34].

будет получен ответ «А=сергей»

Отметим, что машина не понимает используемых в программе имен «нравиться», «носит» и т.д. Можно использовать любые другие обозначения. Для интерпретатора существенны только совпадения имен и связи между предикатами.

Список – множество объектов. Может задаваться через перечисление объектов и понятия головы и хвоста списка.

Например, в списке [X|Y] X – голова списка, Y- хвост. Хвост списка всегда является списком. Пустой список обозначается как []

Пример 2. Определение числа элементов в списке

сколько ([ ], 0).

сколько ([ A | B ], N):= сколько (B, M), N is M+1.

сколько ([саша, игорь, лена], X):

Ответ Х=3.





Дата публикования: 2014-11-18; Прочитано: 559 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...