Google
 
Главная1-й курс2-й курс3-й курс4-й курс5-й курсСсылкиКарта(версия для печати)

Введение в парадигмы программирования

Экзаменационные вопросы по курсу (2006 г.)

Лектор — А. В. Столяров (см. источник).

 
1.
Понятие «парадигма программирования» и его история. Взаимосвязь языков программирования и парадигм программирования.
 
2.
Рекурсия. Виды рекурсии. Примеры.
 
3.
Остаточная (хвостовая) рекурсия.
 
4.
Императивное и императивно-процедурное программирование. Ключевые понятия.
 
5.
Язык Лисп. Понятие S-выражения.
 
6.
Язык Лисп. Функции высоких порядков, мапперы.
 
7.
Язык Лисп. Лексическое и динамическое связывание. Лексические замыкания.
 
8.
Функция REDUCE и примеры её использования.
 
9.
Понятие функционального программирования. Ключевые особенности и термины.
 
10.
Lambda-исчисление. Синтаксис и семантика. Понятие карринга.
 
11.
Понятие редукции lambda-выражения, виды редукции, понятие редекса.
 
12.
Аппликативный и номальный порядок редукции.
 
13.
Чистое lambda-исчисление.
 
14.
Понятие ленивых вычислений. Достоинства и недостатки.
 
15.
Обработка потенциально бесконечных структур данных с помощью ленивых вычислений.
 
16.
Представление сетей процессов ленивыми функциями. Ленивые вычисления и интерактивные программы.
 
17.
Основные понятия языка Пролог: атом, терм, предикат, переменная. Сопоставление (унификация).
 
18.
Выполнение программы на Прологе. Декларативная и процедурная семантика. Отрицание и отсечение.
 
19.
Инвертирование предикатов в Прологе. Причины, по которым инвертирование может не работать.
 
20.
Логическое программирование и базы данных. Понятие декларативного программирования.
 
21.
Основы языка Рефал. Ситуационное программирование. Сравнение рефальского сопоставления с образцом и прологовской унификации.
 
22.
Командно-скриптовые языки программирования и их ключевые особенности.
 
23.
«Текст» как универсальное представление.
 
24.
Алгебра программ. Unix-стиль оформления программ. Два вида суперпозиции.
 
25.
Основы объектно-ориентированного программирования. Термин «object-based programming». Понятие класса как множетства.
 
26.
Наследование в ООП. Наследование как сужение множества. Виртуальные методы.
 
27.
Полиморфизм, его теоретико-множественное и техническое описание.
 
28.
Обобщенное программирование.
 
29.
Обработка исключительных ситуаций и её связь с основными стилями программирования.
 
30.
Событийно-ориентированное программирование.