Парадигмы программирования/Список экзаменационных вопросов
Материал из eSyr's wiki.
Экзаменационные вопросы по курсу «Введение в парадигмы программирования»
- История термина «парадигма» в применении к программированию. Томас Кун. Роберт Флойд.
- Экстенсиональные определения парадигмы программирования (примеры парадигм) и варианты интенсиональных определений.
- Парадигмы программирования и языки программирования. Уровни поддержки парадигмы в языке.
- Рекурсия как парадигма программирования. Примеры.
- Виды рекурсии.
- Остаточная (хвостовая) рекурсия и её оптимизация.
- Язык Лисп: S-выражения.
- Язык Лисп: вычислительная модель и основные спецформы.
- Язык Лисп: функция как объект данных и функции высших порядков.
- Язык Лисп: фунарг-проблема, лексическое и динамическое связывание, замыкания.
- Редуцирование списков.
- Основные видимые отличия языка Scheme от языка Лисп.
- Продолжения (континуации) языка Scheme как обобщение нелокальных выходов и обработки исключений.
- Техника рекурсии с накапливающим параметром и её достоинства в сочетании с оптимизацией хвостовой рекурсии.
- Язык Пролог: структуры данных. Сходство и различия между структурами данных Пролога и S-выражениями.
- Язык Пролог: переменные, унификация выражений, контексты
- Язык Пролог: основы вычислительной модели, предикаты, факты; имитация функций, возвращающих значения, с помощью предикатов большей арности.
- Язык Пролог: гипотеза о замкнутости мира и её последствия.
- Язык Пролог: процедурная семантика, отсечения, причины зависимости программы от порядка целей.
- Язык Пролог: арифметика.
- Язык Пролог: функционирование предикатов в различных прототипах и факторы, мешающие такому функционированию.
- Язык Рефал: структуры данных, сравнение их с S-выражениями.
- Язык Рефал: переменные, сопоставление, синтез нового выражения.
- Язык Рефал: функции, вызов функций. Цикл работы Рефал-машины.
- Расширенный Рефал (условные выражения в предложениях).
- Лямбда-исчисление: синтаксис; БНФ лямбда-выражения.
- Лямбда-исчисление: редукция, редексы, виды редукции.
- Лямбда-исчисление: нормальный и аппликативный порядок редукции, следствие из теоремы Чёрча-Россера и теорема стандартизации.
- Рекурсия в лямбда-исчислении и Y-комбинатор.
- Ленивые вычисления: общие принципы; причины выигрыша и потери в эффективности.
- Ленивые вычисления и бесконечные структуры данных.
- Императивное программирование: основные определяющие факторы, понятие состояния программы.
- Программирование в терминах явных состояний (автоматное программирование), его сходства и различия с императивным программированием.
- Событийно-ориентированное программирование.
- Объектно-ориентированное программирование: объекты и сообщения.
- Объектно-ориентированное программирование: теоретико-множественное введение понятия класса.
- Две терминологические традиции ООП и их синонимия.
- Командно-скриптовые языки программирования и их основные особенности.
- ASCII-текст как парадигма.