Курс "Языки и парадигмы программирования" для аспирантов

Вниманию аспирантов, слушавших курс А.В.Столярова "Языки и парадигмы программирования"! Экзамен состоится 12 января в 10:00 в ауд. 779; ниже приведён список экзаменационных билетов.

СПИСОК БИЛЕТОВ

1. Понятие "парадигма программирования" и его история. Взаимосвязь языков программирования и парадигм программирования.

2. Рекурсия. Виды рекурсии. Примеры.

3. Остаточная (хвостовая) рекурсия.

4. Императивное и императивно-процедурное программирование. Ключевые понятия.

5. Язык Лисп. Понятие S-выражения.

6. Язык Лисп. Функции высоких порядков, мапперы.

7. Язык Лисп. Лексическое и динамическое связывание. Лексические замыкания.

8. Функция REDUCE и примеры её использования.

9. Понятие функционального программирования. Ключевые особенности и термины.

10. Основные понятия языка Пролог: атом, терм, предикат, переменная. Сопоставление (унификация).

11. Выполнение программы на Прологе. Декларативная и процедурная семантика. Отрицание и отсечение.

12. Инвертирование предикатов в Прологе. Причины, по которым инвертирование может не работать.

13. Логическое программирование и базы данных. Понятие декларативного программирования.

14. Основы языка Рефал. Ситуационное программирование.

15. Понятие ленивых вычислений. Достоинства и недостатки.

16. Основы языка Hope.

17. Обработка потенциально бесконечных структур данных с помощью ленивых вычислений.

18. Командно-скриптовые языки программирования и их ключевые особенности.

19. "Текст" как универсальное представление.

20. Основы объектно-ориентированного программирования. Понятие класса как множества.

21. Наследование в ООП. Наследование как сужение множества. Виртуальные методы.

22. Полиморфизм, его теоретико-множественное и техническое описание.

23. Обобщенное программирование.

24. Обработка исключительных ситуаций и её связь с основными стилями программирования.

25. Событийно-ориентированное программирование.

26. Основные методы многостилевой (мультипарадигмальной) интеграции.