Функциональное и логическое программирование

ТРУДОЕМКОСТЬ ДИСЦИПЛИНЫ
Общая трудоемкость дисциплины составляет 5 ЗЕТ (180 часов).

ЦЕЛИ И ЗАДАЧИ ДИСЦИПЛИНЫ
Целью дисциплины является формирование у студентов профессиональных знаний и практических навыков по разработке и созданию моделей с помощью языков функционального и логического программирования.

СОДЕРЖАНИЕ ДИСЦИПЛИНЫ. ОСНОВНЫЕ РАЗДЕЛЫ
Функциональное программирование. Функция как «черный ящик». Понятие функциональности. Основы языка Лисп. Символы и списки. Константы и переменные. Построение списков из атомов и подсписков. Различные интерпретации списка. Понятие функции. Базовые функции в Лиспе. Основные функции обработки списков. Внутреннее представление списков в Лиспе. Указатели. Логическое и физическое равенство. Математические основы Лиспа. Лямбда-исчисление. Порядок редукция и нормальные формы. Лямбда-выражение в Лиспе. Рекурсия в Лиспе. Формы рекурсии: простая, взаимная, параллельное ветвление, рекурсия более высокого порядка. Функционалы в Лиспе. Замыкания. Абстрагирование вычислений. Автофункции. Логическое программирование. Метод резолюций. Унификация. Применение метода резолюция для ответа на вопросы. Основы языка Пролог. Символы и списки. Константы и переменные. Синтаксис. Порядок предложений и целей. Процедурная и декларативная семантика Пролога. Ограничения перебора. Примеры, использующие отсечение. Отрицание как неудача. Внелогические предикаты: доступ к программам и обработка программ. Метапрограммирование. Модификация синтаксиса.

ВИДЫ УЧЕБНОЙ РАБОТЫ
Лекции, лабораторные работы, практические занятия.

ФОРМА АТТЕСТАЦИИ ПО ДИСЦИПЛИНЕ
Изучение дисциплины заканчивается экзаменом.