1 / 12

Лекция 1 Общие понятия. Эволюция парадигм. Современное состояние

Лекция 1 Общие понятия. Эволюция парадигм. Современное состояние. http:// 0861 .ru/ Парадигмы программирования. ст. препод . каф. ПОВТиАС Голубничий Артем Александрович artem@golubnichij.ru. Абакан, 2019. Структура занятия. понятие и связные понятия; различные толкования;

jstephanie
Télécharger la présentation

Лекция 1 Общие понятия. Эволюция парадигм. Современное состояние

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Лекция 1 Общие понятия. Эволюция парадигм.Современное состояние http://0861.ru/ Парадигмы программирования ст. препод. каф. ПОВТиАС Голубничий Артем Александрович artem@golubnichij.ru Абакан, 2019

  2. Структура занятия • понятие и связные понятия; • различные толкования; • история парадигм программирования; • разные подходы к парадигмам программирования; • основные парадигмы программирования; • языки и парадигмы; • парадигмы для рассмотрения.

  3. Понятие и связные понятия Парадигма (от греч. παράδειγμα, «пример, модель, образец») – совокупность фундаментальных научных установок, представлений и терминов, принимаемая и разделяемая научным сообществом и объединяющая большинство его членов. Обеспечивает преемственность развития науки и научного творчества. «Под парадигмой я понимаю признанные всеми научные достижения, которые в течение определённого времени дают научному сообществу модель постановки проблем и их решения» (Томас Сэмюэл Кун, 1962)

  4. Понятие и связные понятия Парадигма программирования – это совокупность идей и понятий, определяющих стиль написания компьютерных программ. Это способ концептуализации, определяющий организацию вычислений и структурирование работы, выполняемой компьютером. «Если прогресс искусства программирования в целом требует постоянного изобретения и усовершенствования парадигм, то совершенствование искусства отдельного программиста требует, чтобы он расширял свой репертуар парадигм» (Роберт В Флойд, 1978) • новая парадигма не отменяет предыдущую; • парадигмы могут сочетаться.

  5. Различные толкования «Слово «парадигма» используется в программировании для определения семейства обозначений (нотаций), разделяющих общий способ (методику) реализаций программ» (ДиомидисСпинеллис) «стиль программирования как описания намерений программиста» (Дэниел Бобров) «модель или подход к решению проблемы» (Брюс Шрайвер ) «подход к решению проблем программирования» (Линда Фридман) «способ размышления о компьютерных системах» (Памела Зейв) «правила классификации языков программирования в соответствии с некоторыми условиями, которые могут быть проверены» (Питер Вегнер)

  6. История некоторых парадигм программирования

  7. Разные подходы к парадигмам программирования • Императивная • Процедурная • Структурная • Аспектно-ориентированная • Объектно-ориентированная • Агентно-ориентированная • Компонентно-ориентированная • Прототипно-ориентированная • Обобщённое программирование • Декларативная • Функциональная • В терминах Рефал-машины • Аппликативная • Комбинаторная • Бесточечная • Логическая • Ограничениями • Конкатенативная • Векторная[en] • Метапрограммирование

  8. Answer set • Concurrent logic • Functional logic • Inductive logic • Dynamic • End-user programming • Event-driven • Service-oriented • Time-driven • Expression-oriented • Feature-oriented • Function-level (contrast: Value-level) • Generic • Imperative (contrast: Declarative) • Literate • Procedural • Language-oriented • Natural-language programming • Discipline-specific • Domain-specific • Grammar-oriented • Action • Agent-oriented • Array-oriented • Automata-based • Concept • Concurrent computing • Relativistic programming • Data-driven • Declarative (contrast: Imperative) • Constraint • Constraint logic • Concurrent constraint logic • Dataflow • Flow-based • Cell-oriented (spreadsheets) • Reactive • Functional • Functional logic • Purely functional • Logic • Abductive logic • Dialecting • Intentional • Metaprogramming • Automatic • Inductive programming • Reflective • Attribute-oriented • Homoiconic • Macro • Template • Policy-based • Non-structured (contrast: Structured) • Array • Nondeterministic • Parallel computing • Process-oriented • Point-free style • Concatenative • Probabilistic • Semantic • … Разные подходы к парадигмам программирования

  9. Основные парадигмы программирования

  10. Языки и парадигмы Функциональные: Лисп Scheme Clojure CommonLisp Erlang Elixir APL ML F# Scala Miranda Nemerle XSLT XQuery Haskell Объектно-ориентированные Ada C# C++ Delphi F# Java JavaScript JScript .NET Object Pascal Objective-C Perl PHP Python Ruby Swift Процедурные: Ada Алгол 60 Алгол 68 Basic (до Visual Basic) Си C++ КОБОЛ Фортран Модула-2 HAL/S Pascal PureBasic Go nim

  11. Языки и парадигмы Мультипарадигмальный язык программирования – язык программирования, который был разработан специально как инструмент мультипарадигмального программирования, т.е. возможности которого изначально предполагалось унаследовать от нескольких, чаще всего не родственных языков.

  12. Парадигмы для рассмотрения • процедурное программирование; • структурное программирование; • объектно-ориентированное программирование; • функциональное программирование; • грамотное программирование; • векторное программирование; • метапрограммирование; • конкурентное (параллельное) программирование.

More Related