Полоцкий государственный университет

Полоцкий
государственный
университет

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

Функциональное и логическое программирование. Функциональное программирование на языке Лисп: учеб.-метод. комплекс для студентов спец. 1-40 01 01 «Программное обеспечение информационных технологий» / Л.В. Малухина. – Новополоцк: ПГУ, 2009. – 100с.
Разработан в соответствии с учебным планом и типовой программой курса. Содержит рабочую программу курса, конспект лекций по разделу «Функциональное программирование» и указания к выполнению лабораторных работ, список вопросов по указанному разделу курса для контроля знаний и перечень задач, рекомендуемую литературу.

Малухина Лариса Васильевна

Лариса
Васильевна
МАЛУХИНА

старший преподаватель кафедры информационных технологий

Окончила факультет электронных устройств и вычислительной техники Ленинградского института авиационного приборостроения по специальности «Автоматизированные системы управления». Читает лекции по дисциплинам «Программирование», «Основы алгоритмизации и программирования», «Функциональное и логическое программирование». Имеет 11 печатных научно-методических работ в области компьютерных информационных технологий и САПР, входит в состав авторского коллектива книги «Интеллектуальное производство: состояние и перспективы развития». Автор УМК «Программирование» для радиотехнических специальностей.

СОДЕРЖАНИЕ

ПРЕДИСЛОВИЕ

РАБОЧАЯ ПРОГРАММА

СИСТЕМА РЕЙТИНГОВОГО КОНТРОЛЯ

ВВЕДЕНИЕ

ТЕМА 1. Лисп – язык функционального программирования

ТЕМА 2. Списки в Лиспе – основное средство представления данных
Изображение списков из атомов и подсписков
Базовые функции и предикаты обработки списков
Комбинации функций CAR и CDR
Предикаты для списков
Дополнительные функции по работе со списками
Внутреннее представление списков
Представление списков через точечные пары
Списочная ячейка и базовые функции
Переменные и списки 23 Cборка «мусора»
Обработка списков без разрушения. Функция Append
Разрушающие функции и использование разрушающих функций
Особенности внутреннего представления списков
Ассоциативные списки

ТЕМА 3. Обработка атомов
Предикаты
Символьные атомы как переменные
Свойства символов

ТЕМА 4. Функции и функциональное представление алгоритмов
LAMBDA-функции и функции пользователя
Программирование пользовательских функций

ТЕМА 5. Программирование в Лиспе
Разновидности форм
Специальные формы
Последовательные формы

ТЕМА 6. Программирование разветвляющихся и циклических алгоритмов
Форма cond
Синтаксис других условных предложений
Синтаксис циклических предложений
Подобие операторного стиля
Программирование ввода и вывода данных
Ввод в Лиспе
Вывод в Лиспе
Использование файлов

ТЕМА 7. Рекурсия в Лиспе
Рекурсивное определение
Простая рекурсия
Параллельная рекурсия
Взаимная рекурсия
Программирование вложенных циклов через рекурсию
Рекурсия более высокого порядка

ТЕМА 8. Функционалы в Лиспе
Понятие функционала и функционального аргумента
Функциональное значение функции
Способы композиции функций и функции более высокого порядка
Функционалы в практическом программировании
Применяющие функционалы
Отображающие функционалы
Практическое применение Мар-функций
Примеры пользовательских функционалов
Примеры применения maplist (повторяющиеся вычисления на хвостовых частях списка)
Функционалы mapcan и mapcon
Функционалы MapC и MapL
Композиция функционалов

ТЕМА 9. Абстрактный подход к программированию в Лиспе и макросы
Замыкание – лексическая блокировка функций
Абстрактный подход в Лиспе
Общее понятие макросов

ТЕМА 10. Язык Лисп в решении задач искусственного интеллекта
Требования к знаниям в задачах искусственного интеллекта
Основные типы знаний
Методы представления знаний
Логика
Продукционные системы
Семантические сети
Фреймы
Методы решения задач искусственного интеллекта
Поиск
Сопоставление с образцом и распознавание образов
Прикладное применение метода распознавания образа
Применение структур в программах к задачам искусственного интеллекта

КОНТРОЛЬ ЗНАНИЙ И УМЕНИЙ
Список вопросов к экзамену по разделу «Функциональное программирование на языке Лисп»
Список задач для подготовки к экзамену

ЛАБОРАТОРНЫЙ ПРАКТИКУМ
Лабораторная работа № 1. Интерпретация математических вычислений в Лиспе
Лабораторная работа № 2. Структура списков и функции обработки списков в Лиспе
Лабораторная работа № 3. Списки и символы. Функции и предикаты Лиспа
Лабораторная работа № 4. Свойства символов. Программирование пользовательских функций
Лабораторная работа № 5. Вычисления в Лиспе с помощью управляющих структур
Лабораторная работа № 6. Простая рекурсия
Лабораторная работа № 7. Простая, параллельная и взаимная рекурсия
Лабораторная работа № 8. Функционалы и функции
Лабораторная работа № 9. Задачи искусственного интеллекта

ЛИТЕРАТУРА