- •1. Парадигмы императивного и декларативного программирования.
- •2. Основные задачи для функционального и логического программирования.
- •3. Основные понятия систем ии.
- •4. Понятие функционального программирования и основные положения по а.П. Ершову.
- •5. Понятие функциональности.
- •14. Префиксная нотация Лиспа, вычисление арифметических выражений.
- •15. Понятие псевдофункции.
- •16. Псевдофункция статического связывания объекта.
- •10. Свойства функционального программирования в постановке а. П. Ершова.
- •11. Структура символьного выражения в Лиспе.
- •12. Символы, атомы, константы, t, nil, списки.
- •13. Список как основная структура функционального и логического программирования.
- •21. Основные примитивы Лиспа для обработки списка.
- •22. Графическое представление списка.
- •23. Принципы работы с памятью функциональной и логической программы
- •24. Автоматические сборщики мусора
- •25. Старт-стопные сборщики мусора и сборщики мусора реального времени
- •Ключевой параметр optional, key, res.
- •33. Карринговая форма записи функций нескольких переменных.
- •48. Функция принадлежности аргумента списка, декларативное определение
- •56. Генератор в программировании, понятие вычислительного контекста
- •57. Связь дисциплины логического программирования с дисциплиной "базы данных"
- •65. Резолюция, правило резолюции как процедура вывода решений
- •66. Сопоставление в логическом программировании
- •81. Оператор присваивания в прологе
- •82. Детерминированные и недетерминированные предикаты
- •83. Отсечение, операционная модель Пролога в случае применения отсечения.
- •88. Рекурсивное логическое программирование
- •105. Металогические предикаты
- •106. Металогические предикаты для анализа структуры термы
- •107. Металогические предикаты для определения типа переменных
10. Свойства функционального программирования в постановке а. П. Ершова.
Сущность функционального программирования определена А. П. Ершовым как «... способ составления программ, в которых единственным действием является вызов функции, единственным способом расчленения программы на части является введение имени для функции, а единственным правилом композиции — оператор суперпозиции функции. Никаких ячеек памяти, ни операторов присваивания, ни циклов, ни, тем более, блок-схем, ни передачи управления».
11. Структура символьного выражения в Лиспе.
В лиспе принято единообразная префиксная нотация записи выражений. Все выражения записываются в круглых скобках. Одно и то же выражение, в зависимости от контекста, может выступать в разных ролях.
>(имя_функции аргумент1 аргумент2 ... аргументN)
12. Символы, атомы, константы, t, nil, списки.
(Символьные выражения) S-выр:
1.скалярные объекты (символы, числа, атомы). Примеры символов: Vmax, A753,S. Символ, который используется для представления константного объекта предметной области, называется атомом. Символы, которые используются для именования других объектов, называются переменными (числа - не переменные). Существуют 2 системно определенных атомов T & NIL. NIL обозначает логическое значение «ложь», с другой стороны – это пустой список. Т используется для логического значения «истина».
2.структурные объекты (списки).
Список - структура, которая либо пуста, либо состоит из 2-х элементов: головы и хвоста. Хвост - обязательно является списком.
13. Список как основная структура функционального и логического программирования.
Списки в функциональных и логических языках являются фундаментальной структурой. Большинство языков имеет встроенные средства для работы со списками вроде получения длины списка, головы (первый элемент списка), хвоста (часть списка, идущая за первым элементом), применения функции к каждому элементу списка.
Список - структура, которая либо пуста, либо состоит из 2-х элементов: головы и хвоста. Хвост - обязательно является списком. Список строится перечислением символов через пробел и заключением получившегося выражения в скобки.
14. Префиксная нотация Лиспа, вычисление арифметических выражений.
В лиспе принято единообразная префиксная нотация записи выражений. Все выражения записываются в круглых скобках. Одно и то же выражение, в зависимости от контекста, может выступать в разных ролях. Префиксная нотация дает широкие возможности для синтаксического анализа выражений, а так же обеспечивает возможность использования единого списочного контекста для программ и данных.
>(имя_функции аргумент1 аргумент2 ... аргументN)
15. Понятие псевдофункции.
Функции, обладающие побочным эффектом, в языке LISP называют псевдо-функциями. Например, функция определения функции в лиспе называется defun (это псевдо-функция). Побочный эффект - создание связи между именем и вычисляемым выражением.
16. Псевдофункция статического связывания объекта.
Статическая связь в лиспе организовывается с помощью псевдо-функции set. Псевдофункция - функция имеющая побочный эффект. В данном случае - организация статической связи.
Функция требует ровно два аргумента. Значением первого аргумента должен быть атом, а значением второго - произвольное S-выражение. Функция присваивает атому, являющемуся значением первого аргумента, значение второго аргумента. Это значение функция одновременно возвращает в качестве результата. Будем называть атом, которому присваивается значение, целевым атомом.
17. Функция eval.
Функция EVAL - это функция, которая может вычислить любое правильно составленное выражение языка LISP. Функция EVAL вычисляет свой аргумент (который может быть атомом или списком).
(eval 1)
==> 1
(eval _Pi)
==> 3.1415926535
18. Функция quote.
Функция QUOTE - Эта функция на самом деле не делает ничего, она просто блокирует вычисление своего единственного аргумента (который может быть любым мыслимым S-выражением\ вызов QUOTE записывается в виде (QUOTE нечто
19. Символьные выражения Лиспа.
S-выражения:
скалярные объекты – атомы:
символы – могут использоваться для именования других объектов программ;
числа – константные объекты;
структурные объекты – список
лежит единообразная префиксная нотация (имя операции записывается перед операндом).
20. Символьные выражения Пролога и Эрланга
Эрланг:
S-выражения – термы:
скалярные
атомы - с маленькой буквы
числа
логические значения
переменные
структуры
списки
кортеж
Списки записываются в [ … ]; пустой список записывается как [].
[a, b, c] – список
[] – пустой список
[голова | хвост]
Пролог:
S-выражения – термы:
Константные объекты
атом
число
Переменная
Структура
Атом записывается с маленькой буквы: student, ivanov, p789.
Числа – целые и вещественные.
Переменные могут и должны использоваться для именования других объектов; им могут быть присвоены значения – конкретизация переменных; переменные записываются с большой буквы; анонимная переменная сопоставляется с любым значением, обозначается: _.
Структура имеет следующий вид:
функтор (компонент1, компонент2, …, компонентn)
