Парадигмы программирования/Список экзаменационных вопросов

Материал из eSyr's wiki.

(Различия между версиями)
Перейти к: навигация, поиск

ESyr01 (Обсуждение | вклад)
(Новая: = Экзаменационные вопросы по курсу «Введение в парадигмы программирования» = # История термина «пара...)
К следующему изменению →

Версия 13:51, 4 декабря 2009

Экзаменационные вопросы по курсу «Введение в парадигмы программирования»

  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. Язык Рефал: структуры данных, сравнение их с S-выражениями.
  23. Язык Рефал: переменные, сопоставление, синтез нового выражения.
  24. Язык Рефал: функции, вызов функций. Цикл работы Рефал-машины.
  25. Расширенный Рефал (условные выражения в предложениях).
  26. Лямбда-исчисление: синтаксис; БНФ лямбда-выражения.
  27. Лямбда-исчисление: редукция, редексы, виды редукции.
  28. Лямбда-исчисление: нормальный и аппликативный порядок редукции, следствие из теоремы Чёрча-Россера и теорема стандартизации.
  29. Рекурсия в лямбда-исчислении и Y-комбинатор.
  30. Ленивые вычисления: общие принципы; причины выигрыша и потери в эффективности.
  31. Ленивые вычисления и бесконечные структуры данных.
  32. Императивное программирование: основные определяющие факторы, понятие состояния программы.
  33. Программирование в терминах явных состояний (автоматное программирование), его сходства и различия с императивным программированием.
  34. Событийно-ориентированное программирование.
  35. Объектно-ориентированное программирование: объекты и сообщения.
  36. Объектно-ориентированное программирование: теоретико-множественное введение понятия класса.
  37. Две терминологические традиции ООП и их синонимия.
  38. Командно-скриптовые языки программирования и их основные особенности.
  39. ASCII-текст как парадигма.
Разделы