Реферат: Язык программирования Пролог

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

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

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

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

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

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

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

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

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

Предикат – конструкция вида 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.

еще рефераты
Еще работы по информатике