Средства разработки приложений


Лекция из курса Основы программирования на языке Пролог


П. А. Шрайнер
Интернет Университет Информационных Технологий, INTUIT.ru

Эта лекция будет посвящена теоретическим основам языка Пролог. В принципе, вполне можно писать хорошие программы на языке Пролог, не вдаваясь в глубины математической логики. И в этом смысле можно считать эту главу необязательной, факультативной. Однако тем, кому интересно узнать, «как она вертится», мы попробуем объяснить, как устроен Пролог, на чем он основывается.

Давайте начнем с самого начала или почти с самого начала, раз уж мы договорились, что никаких предварительных навыков от слушателей не требуется. Нам придется попытаться разобраться с понятиями логики первого порядка, которая лежит в основе Пролога; они обычно изучаются в курсе математической логики. Конечно, для того чтобы изучить даже самые начала математической логики, одной лекции недостаточно. Поэтому мы попытаемся пробежаться только по тому кусочку, который имеет отношение к языку Пролог. Часть используемых нами понятий все-таки останется «за кадром».

Говорят, что задана некая формальная система F, если определены:

  1. алфавит системы — счетное множество символов;
  2. формулы системы — некоторое подмножество всех слов, которые можно образовать из символов, входящих в алфавит (обычно задается процедура, позволяющая составлять формулы из символов алфавита системы);
  3. аксиомы системы — выделенное множество формул системы;
  4. правила вывода системы — конечное множество отношений между формулами системы.

Зададим логику первого порядка (или логику предикатов), на которой основывается Пролог. Язык логики предикатов — один из формальных языков, наиболее приближенных к человеческому языку.

Алфавит логики первого порядка составляют следующие символы:

  1. переменные (будем обозначать их последними буквами английского алфавита u, v, x, y, z);
  2. константы (будем обозначать их первыми буквами английского алфавита a, b, c, d);
  3. функциональные символы (используем для их обозначения ближние буквы f и g);
  4. предикатные символы (обозначим их дальними буквами p, q и r);
  5. пропозициональные константы истина и ложь (true и false);
  6. логические связки ¬ (отрицание), (конъюнкция), (дизъюнкция), (импликация);
  7. кванторы: (существования), (всеобщности);
  8. вспомогательные символы (, ), ,.

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


Начало    Вперед



Книжный магазин