С/к "Введение в парадигмы программирования"

Список экзаменационных вопросов к спецкурсу «Введение в парадигмы программирования» (лектор доц. А.В.Столяров, 2012 г.)

  1. История термина "парадигма" в применении к программированию. Томас Кун.
    Роберт Флойд.
  2. Экстенсиональные определения парадигмы программирования (примеры
    парадигм) и варианты интенсиональных определений.
  3. Парадигмы программирования и языки программирования. Уровни поддержки
    парадигмы в языке.
  4. Рекурсия как парадигма программирования. Примеры.
  5. Виды рекурсии.
  6. Остаточная (хвостовая) рекурсия и её оптимизация.
  7. Язык Лисп: S-выражения.
  8. Язык Лисп: вычислительная модель и основные спецформы.
  9. Язык Лисп: функция как объект данных и функции высших порядков.
  10. Язык Лисп: фунарг-проблема, лексическое и динамическое связывание,
    замыкания.
  11. Редуцирование списков.
  12. Основные видимые отличия языка Scheme от языка Лисп.
  13. Продолжения (континуации) языка Scheme как обобщение нелокальных
    выходов и обработки исключений.
  14. Техника рекурсии с накапливающим параметром и её достоинства в
    сочетании с оптимизацией хвостовой рекурсии.
  15. Язык Пролог: структуры данных. Сходство и различия между структурами
    данных Пролога и S-выражениями.
  16. Язык Пролог: переменные, унификация выражений, контексты
  17. Язык Пролог: основы вычислительной модели, предикаты, факты; имитация
    функций, возвращающих значения, с помощью предикатов большей арности.
  18. Язык Пролог: гипотеза о замкнутости мира и её последствия.
  19. Язык Пролог: процедурная семантика, отсечения, причины зависимости
    программы от порядка целей.
  20. Язык Пролог: арифметика.
  21. Язык Пролог: функционирование предикатов в различных прототипах и
    факторы, мешающие такому функционированию.
  22. Лямбда-исчисление: синтаксис; БНФ лямбда-выражения.
  23. Лямбда-исчисление: редукция, редексы, виды редукции.
  24. Лямбда-исчисление: нормальный и аппликативный порядок редукции,
    следствие из теоремы Чёрча-Россера и теорема стандартизации.
  25. Рекурсия в лямбда-исчислении и Y-комбинатор.
  26. Ленивые вычисления: общие принципы; причины выигрыша и потери в
    эффективности.
  27. Ленивые вычисления и бесконечные структуры данных.
  28. Императивное программирование: основные определяющие факторы, понятие
    состояния программы.
  29. Объектно-ориентированное программирование: объекты и сообщения.
  30. Объектно-ориентированное программирование: теоретико-множественное
    введение понятия класса.
  31. Две терминологические традиции ООП и их синонимия.
  32. Командно-скриптовые языки программирования и их основные
    особенности.