
- •1. Парадигмы императивного и декларативного программирования.
- •2. Основные задачи для функционального и логического программирования.
- •3. Основные понятия систем ии.
- •4. Понятие функционального программирования и основные положения по а.П. Ершову.
- •5. Понятие функциональности.
- •10. Свойства функционального программирования в постановке а. П. Ершова.
- •11. Структура символьного выражения в Лиспе.
- •12. Символы, атомы, константы, t, nil, списки.
- •13. Список как основная структура функционального и логического программирования.
- •14. Префиксная нотация Лиспа, вычисление арифметических выражений.
- •15. Понятие псевдофункции.
- •16. Псевдофункция статического связывания объекта.
- •21. Основные примитивы Лиспа для обработки списка.
- •22. Графическое представление списка.
- •23. Принципы работы с памятью функциональной и логической программы
- •24. Автоматические сборщики мусора
- •25. Старт-стопные сборщики мусора и сборщики мусора реального времени
- •Ключевой параметр optional, key, res.
- •33. Карринговая форма записи функций нескольких переменных.
- •48. Функция принадлежности аргумента списка, декларативное определение
- •56. Генератор в программировании, понятие вычислительного контекста
- •57. Связь дисциплины логического программирования с дисциплиной "базы данных"
- •65. Резолюция, правило резолюции как процедура вывода решений
- •66. Сопоставление в логическом программировании
- •81. Оператор присваивания в прологе
- •82. Детерминированные и недетерминированные предикаты
- •83. Отсечение, операционная модель Пролога в случае применения отсечения.
- •88. Рекурсивное логическое программирование
- •105. Металогические предикаты
- •106. Металогические предикаты для анализа структуры термы
- •107. Металогические предикаты для определения типа переменных
21. Основные примитивы Лиспа для обработки списка.
Список - структура, которая либо пуста, либо состоит из 2-х элементов: головы и хвоста
Примитивы работы со списками.
(car список) -> S-выражение
(cdr список) -> список
(cons s-выр список) -> список
(cons s-выр s-выражение) -> точечная пара
22. Графическое представление списка.
Графическое представление списка основано на представлении списочной ячейки, состоящей из 2-х полей.1ая половина указывает на голову, 2ая на хвост. Из цепочки ячеек можно составить одноуровневый список.
(atom s-выр) -> T/NIL
>(atom x)
nil
>(atom 'x)
T
(NULL список) -> T(если список явл. пустым)
23. Принципы работы с памятью функциональной и логической программы
В функциональном и логическом программировании имеющиеся в памяти структуры не разрушаются. Функциональная программа генерирует новые структуры из уже имеющихся методом анализа и синтеза.
Мусором называются ячейки памяти, которые занимают ячейки памяти в куче, но не доступны программисту. Во все функциональные языки программирования включены автоматические сборщики мусора, которые либо постоянно, либо периодически сканируют память, обнаруживают мусорные ячейки и переводят их в разряд свободных.
24. Автоматические сборщики мусора
Мусором называются ячейки памяти, которые занимают ячейки памяти в куче, но не доступны программисту. Во все функциональные языки программирования включены автоматические сборщики мусора, которые либо постоянно, либо периодически сканируют память, обнаруживают мусорные ячейки и переводят их в разряд свободных.
25. Старт-стопные сборщики мусора и сборщики мусора реального времени
Старт-стопные сборщики мусора останавливают поиск процесса для выполнения операции сборки мусора.
Сборщики мусора реального времени: выполняются одновременно и операция сборки мусора и пользовательский процесс.
Мусором называются ячейки памяти, которые занимают ячейки памяти в куче, но не доступны программисту. Во все функциональные языки программирования включены автоматические сборщики мусора, которые либо постоянно, либо периодически сканируют память, обнаруживают мусорные ячейки и переводят их в разряд свободных.
26. Список в Эрланге, конструктор списка
Списки, хорошо знакомые нам по Лиспу, представляют собой цепочки вложенных пар. Конструктор списков имеет вид [<голова>|<хвост>]. Пустой список обозначается "[]". Аналоги функций car и cdr носят имена hd и tl. Как и в Лиспе предусмотрена сокращенная запись: список [a1|[a2|...[an|[]]...]] обычно записывают в виде [a1,a2,...an].
27. Образец, сопоставление с образцом
Образцом называется структурный объект, содержащий неконкретизированную переменную.
Сопоставление с образцом. В случае с совпадением с образцом выполняется конкретизация переменной..
>[a,X,b](образец)=(сопоставление)[a,d,b].
X=d
28. Выделение элементов списка в Эрланге с помощью примитивов.
hd(X)- Голова списка Х - аналог car tl(X)- Хвост списка Х - - аналог cdr
29. Выделение элементов списка в Эрланге с использованием образцов
Как и из всего остального, мы можем извлекать элементы из списка с помощью
оператора сопоставления по образцу. Если у нас имеется не пустой список L , тогда
выражение [X|Y]=L , где Х и У - это несвязанные переменные, поместит голову списка
в Х, а хвост списка - в У.
30. Порядок вычисления лямбда выражений
Порядок вычисления соответствует энергичной стратегии вычисления, принятой в лиспе:
1)Вычисляются f1 f2 fn
2)Формальные и фактические параметры связываются
3)вычисляется форма
4)возвращается значение вычисления
5)связи возвращаются в первоначальное состояние
31. Функция определения функций (связывание символов)
Для связывания символов используется три функции: SET, SETQ , SETF
1) SET: связывает символ со значением, предварительно вычисляя значения аргументов. В качестве значения функция SET возвращает значение второго аргумента.
2) SETQ: аналогична SET, но не вычисляет значение первого аргумента. Буква q на блокировку.
3) SETF: действует аналогично SETQ, но может использоваться для присвоения символу не только значения.