РАБОЧАЯ ПРОГРАММА Функциональное и логическое программирование

advertisement
РАБОЧАЯ ПРОГРАММА
пк4 D users ucit рабпрог спец2204
по дисциплине «Функциональное и логическое программирование»
для студентов, обучающихся по специальности 220400
«Программное обеспечение вычислительной техники
и автоматизированных систем»
Направление 552800 «Информатика и вычислительная техника» (бакалавр)
Л. 34 ч., Пр. 17 ч., Лаб. раб. 17 ч., Инд. раб.34 ч., РГР (2), Сам. раб. 69 ч., Экз., ГЭ, Всего 171 ч.
Функциональное и логическое программирование (выдержка из ГОСВПО) :
рекурсивные функции и лямбда-исчисление А. Черча; программирование в функциональных обозначениях; функциональные языки; строго функциональный язык; приёмы программирования; представление и интерпретация функциональных программ; отладка программ; конкретные реализации языков функционального программирования; соответствие
между функциональными и императивными программами; применения функционального
программирования; логическая программа: основные конструкции, операционная и декларативная семантика, интерпретация, корректность; программирование баз данных; рекурсивное программирование; вычислительная модель; анализ структуры термов; металогические предикаты; внелогические предикаты; недетерминированное программирование; неполные структуры данных; программирование второго порядка; методы поиска; обработка
нечётких данных; Constraint – Пролог: операционная семантика; применение логического
программирования в задачах искусственного интеллекта.
Темы лекционных занятий:
1. Общие сведения о языках логического и функционального программирования. (Декларативное программирование. Логическое программирование PROLOG.)
2. Основные элементы языка. (Предикаты. Арность. Факты, правила. Домены.)
3. Принципы поиска с возвратом. («Зелёное» и «красное» отсечения.)
4. Арифметические вычисления. (Функторы. Составные объекты данных.)
5. Рекурсия.
6. Списки.
7. Деревья. (Упорядоченные, неупорядоченные и поисковые деревья. Упорядоченность.)
8. Динамические базы данных. (Объявление. Добавление. Сохранение. Анализ потока параметров.)
9. Файлы. (Стандартные предикаты.)
10. Графы. (Ориентированные и неориентированные. Ациклический путь. Гамильтонов путь. Остовное
дерево графа.)
11. Язык PROLOG. (Ветвления. Отсечение. Проекты.)
12. Язык функционального программирования LISP. (Лямбда – исчисление А. Чёрча.)
13. Особенности языка LISP. (Атомы, списки. Инфиксная и префиксная нотации. Функции и процедуры.)
14. Базовые функции. (Предикаты. Псевдофункции. Структуры языка LISP)
15. Рекурсия. (Простая, по значению, по аргументу, параллельная.) Функциональные аргументы.
Функционалы. Макросы.
16. Перспективы развития.
Основная литература:
1. Братко И. Программирование на языке Пролог для искусственного интеллекта.
2. Доорс Дж., Рейблейн А.Р., Вадера С. Пролог – язык программирования будущего.
3. Ин Ц., Соломон Д. Использование Турбо – Пролога.
4. Клоксин У., Меллиш Д. Программирование на языке Пролог.
5. Стерлинг Л., Шапиро Э. Искусство программирования на языке Пролог.
6. Стобо Дж. Язык Программирования Пролог.
7. Хендерсон П. Функциональное программирование: применение и реализация.
8. Хювёнен Э. Сеппянен Й. Мир Лиспа.
9. Гаврилов А.В., Новицкая Ю.В. Основы программирования на Турбо – Прологе (учебное пособие).
10. Малпас Дж. Реляционный язык Пролог и его применение.
11. Маурер У. Введение в программирование на языке ЛИСП.
12. Сырецкий Г.А. Информатика. Часть III. Основы логического программирования на PDC Prolog (учебное пособие).
13. Янсон А. Турбо – Пролог в сжатом изложении.
Download