Математически основи на логическото програмиране. Предикатно смятане от първи ред. Метод на резолюцията. Език за логическо програмиране Пролог. Клаузи на Хорн. Факти. Правила. Цели. Механизъм на възврат. Рекурсия в Пролог. Списъци. Работа с бази от данни. Особености на езиците за функционално програмиране. Език за функционално програмиране Лисп. Механизъм на оценяване. Примитивни обекти. Комбинации. Средства за абстракция. Рекурсия и итерация в Лисп. Точкови двойки и списъци. Ламбда изрази. Функции от по-висок ред. Приложения.
Съдържание
I. Лекции
Основи на логическото програмиране. Съждително смятане. Предикатно смятане от първи ред.
Метод на резолюцията. Унификация на атомарни формули и терми.
Езици за логическо програмиране. Пролог. Особености. Клаузи на Хорн.
Клаузи. Факти. Конюнкция. Дизюнкция. Отрицание. Правила. Правила с дизюнкции. Цели. Структури. Клаузи със структури.
Механизъм на възврат. Същност. Приложение.
Рекурсия. Лява и дясна рекурсия.
Основни вградени предикати. Синтаксис и семантика.
Списъци. Основни задачи със списъци.
Работа с бази от данни . Експертни системи.
Приложения. Двоично дърво. Граф.
Особености на езиците за функционално програмиране. Видове езици за функционално програмиране Лисп. Механизъм на оценяване.
Примитивни обекти. Атоми. Списъци.
Средства за комбиниране. Комбинации.
Средства за абстракция. Дефиниране на функции. Оценяване на функции. Апликативен модел. Нормален модел на заместване. Вложени дефиниции. Блокова структура.
Функции от по-висок ред. Функции като параметри. Функции като връщани стойности. Примери за намиране на суми, произведения на числа, работа със списъци и др.
Представяне на съставни структури от данни. Рационално число. Двоично дърво. Опашка.
II. Упражнения
Метод на резолюцията.
Клаузи
Рекурсия в Пролог
Списъци в Пролог
Работа с бази от данни
Механизъм на оценяване на примитивни обекти. Комбинации.