Различия между версиями 9 и 10
Версия 9 от 2021-09-05 19:20:45
Размер: 4411
Редактор: FrBrGeorge
Комментарий:
Версия 10 от 2021-09-05 19:21:30
Размер: 4452
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 2: Строка 2:
 . (если кто-то попал сюда в 2021: [[https://youtu.be/B4iGOyvqHpQ|Вводная лекция]] 2021 г.)  . (если кто-то попал сюда в 2021:  [[../2021_09_06|план]] и сама [[https://youtu.be/B4iGOyvqHpQ|Вводная лекция]] 2021 г.)

"Парадигмы программирования", 2020

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

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

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

Почти всё, что мы знаем о конкретном ЯП, может быть не нужно в другом! Например:

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

LecturesCMC/AL/2020_09_07 (последним исправлял пользователь FrBrGeorge 2021-09-05 19:21:30)