"Парадигмы программирования", 2021, вводная лекция

Вводная лекция на YouTube

Что такое «программирование»?

  1. Алгоритм — «это когда» (∃ только операциональное определение)

    1. формализована задача (класс задач)
    2. формализованы однозначно интерпретируемые действия (правила, инструкции и т. п.) при решении задач
    3. формализован исполнитель этих действий:
      1. порядок (не «последовательность») исполнения,
      2. представление объектов из предметной области задачи
      3. и т. п.
    4. есть конечная запись действий (программа),
      1. приводящая к решению задачи за конечное число действий исполнителя
      2. для одной и той же задачи решение всегда одинаковое
  2. Алгоритмически полная система
    1. Примеры:
    2. Тезис Чёрча — Тьюринга

      • ⇒ Вещественных чисел ∄ :D

  3. Требования к алгоритмически полной системе (нечёткие):
    1. Соответствие операциональному определению алгоритма
    2. + Аллегируемые объекты

    3. + Действия, обусловленные свойствами объектов
    4. ⇒ Эквивалентность какой либо актуальной алгоритмически полной системе :) в смысле Чёрча — Тьюринга

  4. ⇒ Программа — это формальная запись алгоритма
  5. ⇒ Программирование как актуализация понятия «программа» в этом определении

Что такое «парадигма программирования»?

  1. Научная парадигма

  2. Парадигма программирования: дисциплина построения и актуализации алгоритмически полных формализмов.

    • Совокупность идей и понятий, определяющих стиль написания компьютерных программ
    • «Такой способ думать»
    • Формализация исполнителя, задания и аллегирования объектов, порядка и обусловливания действий и удобные для такого формализма практики

      • ⇒ Если аллегирование и обусловливание в ЯП похожи, скорее всего, они реализуют одну и ту же парадигму
      • ⇒ Большинство современных ЯП мультипарадигмальны

Конкретнее? А конкретика всегда разная!

  1. Где в «требованиях» циклы?
  2. Нужна ли последовательность выполнения инструкций?

  3. Существуют ли объекты, когда действия не выполняются?
  4. «Вычислитель» — это конкретная ЭВМ или что-то совсем иное?
  5. При повторном использовании алгоритма выполняется тот же самый код или другой?
  1. О чём будет этот курс?
    1. Нет никакого конечного списка парадигм, а тем более единого критерия, который бы позволил составить такой список
    2. Парадигмы могут пересекаться, быть реализованы частично и т. п.
    3. Устоявшиеся парадигмы живы потому, что эффективно решают некоторые классы задач
    4. Языки программирования, как правило, хорошо отвечают не более, чем одной парадигме
      • хотя зачастую имеют инструментарий для другой
    5. ⇒ Будем коротко изучать наиболее характерные некоторые ЯП, и как на них думать
    6. В числе прочего — ООП как основу для парадигмального сдвига
    7. Процедурное окостенение алгоритмического мышления как недостаток современной программистской культуры
  2. Бонус: о чём этот курс не будет

LecturesCMC/AL/2021_09_06 (последним исправлял пользователь FrBrGeorge 2022-09-04 11:17:58)