Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Является представителем семейств языков логического программирования. Его особенности в сравнении с традиционными алгоритмическими языками:
программа на Прологе не является алгоритмом, а представляет собой запись условия задачи на языке формальной логики;
язык Пролог предназначен не для решения вычислительных или графических задач, а для решения логических задач, для моделирования процесса логического умозаключения человека;
Пролог требует особого стиля мышления программиста. Изучению Пролога должно предшествовать изучение математической логики.
Программирование на Прологе включает в себя следующие этапы:
объявление фактов об объектах и отношениях между ними;
определение правил взаимосвязи объектов и отношений между ними;
формулировка вопроса об объектах и отношениях между ними.
Основные понятия языка:
Предикат – конструкция вида 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!