rpd000001768 (1009980), страница 2
Текст из файла (страница 2)
- 11. Функциональные и объектно-ориентированные особенности языка Common Lisp
- 12. Функции форматного и файлового ввода/вывода
-
Лекции
№ п/п | Раздел дисциплины | Объем, часов | Тема лекции | Дидакт. единицы |
1 | 1.1.Введение в функциональное программирование на ЛИСПе. | 2 | Введение в функциональное программирование на ЛИСПе. Префиксная нотация функций и списковый аргумент. Диалог | 1, 2 |
2 | 1.1.Введение в функциональное программирование на ЛИСПе. | 2 | Основные принципы, элементы и понятия языка ЛИСП. | 1 |
3 | 1.2.Базовый набор встроенных функций ЛИСПа | 2 | Алгебраические функции ЛИСПа. Старая и новая нотация | 2 |
4 | 1.2.Базовый набор встроенных функций ЛИСПа | 2 | Предикаты и логические связки (функции) ЛИСПа | 2 |
5 | 1.2.Базовый набор встроенных функций ЛИСПа | 2 | Встроенные функции обработки списков | 2, 3 |
6 | 1.3.Встроенные функции высших порядков | 2 | Встроенные функции высших порядков (функционалы) | 3 |
7 | 1.4.Снятие и назначение функциональности | 2 | Снятие и назначение функциональности | 4 |
8 | 1.5.Разработка пользовательских функций на ЛИСПе | 2 | Разработка пользовательских функций | 5 |
9 | 1.6.Ветвление вычислительного процесса на ЛИСПе | 2 | Управляющие структуры ЛИСПа | 6, 5 |
10 | 1.7.Разработка рекурсивных пользовательских функций | 2 | Разработка рекурсивных пользовательских функций | 7 |
11 | 1.7.Разработка рекурсивных пользовательских функций | 2 | ЛИСП в задачах искусственного интеллекта | 7, 5 |
12 | 1.8.Лямбда-функции – фундамент функциональности | 2 | Лямбда-функции – фундамент функциональности | 8, 2, 3 |
13 | 1.9.Свойства атомов – оригинальные структуры ЛИСПа | 2 | Свойства атомов – особый способ структурирования данных | 9 |
14 | 1.10.Императивные особенности ЛИСПа | 2 | Императивные особенности - присвоения и циклы | 10 |
15 | 1.11.Функциональные и объектно-ориентированные особенности языка Common Lisp | 4 | Функциональные и объектно-ориентированные особенности Common Lisp | 11 |
16 | 1.12.Функции форматного и файлового ввода/вывода | 2 | Функции форматного и файлового ввода/вывода различных версий ЛИСПа | 12 |
Итого: | 34 |
-
Практические занятия
№ п/п | Раздел дисциплины | Объем, часов | Тема практического занятия | Дидакт. единицы |
Итого: |
-
Лабораторные работы
№ п/п | Раздел дисциплины | Наименование лабораторной работы | Наименование лаборатории | Объем, часов | Дидакт. единицы |
1 | 1.2.Базовый набор встроенных функций ЛИСПа | Знакомство с пакетами pc-lisp, XLISP и Common Lisp. Диалог с ЛИСП-машиной. Подключение ЛИСП-файлов и встроенных библиотек. | Компьютерный класс каф.304 | 4 | 1, 2, 3, 4 |
2 | 1.5.Разработка пользовательских функций на ЛИСПе | Конструирование и обработка простых списков. Применение пакета встроенных алгебраических функций в старой и новой нотации | Комрпьютерный класс каф.304 | 4 | 5, 6, 2, 3, 4 |
3 | 1.7.Разработка рекурсивных пользовательских функций | Разработка и применение пользовательских функций, осуществляющих линейные, разветвляющиеся, рекурсивные и циклические вычисления. Использование л | Компьютерный класс каф.304 | 4 | 6, 7, 8 |
4 | 1.11.Функциональные и объектно-ориентированные особенности языка Common Lisp | Создание структурированных баз данных с помощью свойств атомов.Применение пользовательских функций обработки списков произвольной структуры. | Компьютерный класс каф.304 | 4 | 9, 10, 11 |
Итого: | 16 |
-
Типовые задания
№ п/п | Раздел дисциплины | Объем, часов | Наименование типового задания |
Итого: |
-
Курсовые работы и проекты по дисциплине
-
Рубежный контроль
-
Промежуточная аттестация
1. Зачёт
Прикрепленные файлы:
Вопросы для подготовки к экзамену/зачету:
1.Понятие функции в функциональном программировании.
2.Лямбда-исчисление Чёрча – теоретическая модель функционального программирования. ЛИСП – язык функционального программирования.
3.Префиксная скобочная (кембриджская) нотация ЛИСПа. Встроенные арифметические и алгебраические функции ЛИСПа в старой и в новой нотации.
4.Структура программы на ЛИСПе как применение функции к списку аргументов, представляющему собой результаты применений иных функций.
5.Понятие списка как бинарной динамической рекурсивной структуры данных. Структурированное представление информации списками с произвольными элементами (произвольного вложения). Автоматическая «сборка мусора».
6.Базовые элементы ЛИСПа: атомы, списки, функции. Функция QUOTE ( ’) как остановка применения функций. Функции присвоения SET и SETQ.
7.Диалог с ЛИСП-машиной. Бестиповость ЛИСПа. Экономный синтаксис ЛИСПа.
8.Встроенные функции обработки списков. Конструирование и обработка списков встроенными функциями CAR, CDR, CONS, LIST, APPEND, EXPLODE, IMPLODE, APPEND, MEMBER, REVERSE, LAST, LENGTH и др.
9.Функционалы APPLY и MAPCAR. Замыкания FUNCALL.
10.Функция создания пользовательских функций DEFUN (или DEFINE). Свободные и связанные в функциях переменные.
11.Создание и использование лямбда-функций на ЛИСПе.
12.Функция условного ветвления COND. Встроенные логические функции ЛИСПа.
13.Рекурсии на ЛИСПе. Разработка рекурсивных функций.
14.Присвоение атомарных значений атомам. Функция EVAL.
15.Функция создания структур следования и рабочих переменных PROG. Функции передачи управления GO и RETURN.
16.Ассоциативные списки (a-списки) и функция ASSOC.
17.Свойства символов (атомов) на ЛИСПе. Встроенные функции для работы со свойствами GET, PUTPROP, REMPROP, DEFPROP, а также SETF (на COMMON LISP). Функции ввода и вывода на ЛИСПе – READ, PRINT и др
18.Сравнение функционального и логического подходов. ЛИСП vs ПРОЛОГ.
19.Особенности языка COMMON-LISP. Расширения ЛИСПа. Функции: связывания LET и LET*, присвоения SETF и PSETQ, равенства EQL. Инкремент INCF, декремент DECF.
20.Новые функции организации ветвления на COMMON-LISP: IF, WHEN, UNLESS и CASE…OTHERWISE. Функция PROGN.
21.Новые функции циклов на COMMON-LISP: DO, DO*, LOOP...DO, DOLIST и DOTIMES.
22.Новые функции обработки списков COMMON-LISP: PUSH, POP, SORT, FIND, SUBSETP, INTERSECTION, UNION, SET-DIFFERENCE.
23.Дополнительные структуры COMMON-LISP: последовательности, рациональные дроби, комплексные числа, массивы (MAKE-ARRAY), строки (CHAR и CONCATENATE ‘STRING | ‘LIST | ‘VECTOR), структуры DEFSTRUCT. Функции AREF и SETF,… акцессоры GET-...
24.Особые метатипы для аргументов функций &OPTIONAL, &REST, &KEY. Особые метатипы для аргументов функций &OPTIONAL, &REST, &KEY. Переменные *SPECIAL* (DEFVAR).
25.Объектно-ориентированное программирование на COMMON LISP. Объявление класса DEFCLASS, создание метода DEFMETHOD и объекта MAKE-ARRAY.
26.Файловый ввод/вывод в различных версиях ЛИСПа.
27.Применение ЛИСПа при решении прикладных задач. Поиск путей в графе. Минимаксные алгоритмы. «Ханойская башня».
28.Применение ЛИСПа при решении задач искусственного интеллекта. Программирование алгоритмов символьного дифференцирования и интегрирования, а также сопровождающих эти задачи алгоритмов.
29.Особенности функционального подхода в языке CLIPS. Логический вывод в языке CLIPS. Элементы ЛИСПа и ПРОЛОГа в языке CLIPS. Два режима языка CLIPS.
-
УЧЕБНО-МЕТОДИЧЕСКОЕ И ИНФОРМАЦИОННОЕ ОБЕСПЕЧЕНИЕ ДИСЦИПЛИНЫ
а)основная литература:
1. Городняя Л.В. Основы функционального программирования. Курс лекций. Учебное пособие. –
М.: ИНТУИТ.РУ «Интернет-университет информационных технологий», 2004, 272с.
б)дополнительная литература:
1. Гладков С.А. Программирование на языке АвтоЛИСП в системе САПР АвтоКАД. - для персональных ЭВМ. Учебно-справочное пособие по программированию. – М.: «Диалог-МИФИ», 1991. – 95 с.
2. Семёнов М.Ю. Язык ЛИСП для персональных ЭВМ. Учебное пособие – М.: МГУ, 1989. – 70 с.
3. Семёнова Е. Язык программирования LISP 1.5. Учебное пособие по курсу «Информатика». – М.: МЭИ, 1977. – 86 с.
4. Юдин С.Ф. Введение в алгоритмический язык ЛИСП. Учебное пособие. – Л.: ЛПИ, 1977, 43 с.
5. Уинстон П. Искусственный интеллект. – М.: Мир, 1980
6. Лорьер Ж.Л. Системы искусственного интеллекта. – М.: Мир, 1991
7. Хендерсон П. Функциональное программирование. Применение и реализация - М.: Мир, 1983