printВведение

printПарадигмы программирования

Парадигма программирования – это обобщенная концептуальная схема, способ программирования. Вместе с языком, ее формализирующим, парадигма формирует стиль программирования. Выделяются следующие пять основных парадигм.
В процедурном (императивном) программировании программа состоит из структур данных (объектов обработки) и алгоритма (метода обработки). Программист должен в явном виде описать все вычисления, которые должен проделать компьютер. Для управления процессом выполнения используются следующие конструкции: последовательность, ветвление, цикл и вызов подпрограммы. Эта парадигма является самой старой. Она развивалась по мере появления новых концепций в языках программирования: трансляция (Ассемблер, Fortran, Cobol), типизация (Pascal), модули (Modula), специализация на конкретной области применения (RPG, Clipper) и универсальность (PL/I, C, Ada).
В логическом программировании вместо описания алгоритма решения задачи описывается мир задачи, какие имеются объекты, их свойства и отношения между ними. За основу описания берутся отношения между объектами. Логическая программа представляет собой набор отношений, которые называются фактами, и правил, на основании которых могут быть получены новые отношения. Логическая программа не задает никакого процесса вычислений. Это своего рода база данных (БД) о предметной области задачи. Ее применение инициализируется запросом. Поиск ответа на запрос заключается в попытке логического вывода запроса на основании фактов и правил, имеющихся в БД. Поиск решения выполняется специальной программой-интерпретатором. Наиболее распространенным языком логического программирования является Prolog, у которого есть многочисленные наследники.
В функциональном программировании единственной управляющей конструкцией является вызов функции. В языке, реализующем функциональную парадигму, существует некоторое множество базовых функций, и все другие функции строятся из базовых функций с помощью композиции: `max3(a,b,c)=max(a,max(b,c))`. Теоретической основой функционального программирования является `λ`-исчисление Чёрча и теория рекурсивных функций. Наиболее известными языками программирования, реализующими функциональную парадигму, являются LISP, Scheme, Haskell, Standard ML.
Логическая и функциональная парадигмы считаются разновидностями декларативного программирования, так как они основаны на описании взаимосвязей (логических или функциональных) между элементами проблемной области.
В объектно-ориентированном программировании (ООП) мир задачи описывается как совокупность объектов, обладающих некоторыми свойствами и вступающих во взаимодействие. За основу описания берутся не отношения, а сами объекты. Объект состоит из данных (внутренняя структура объекта) и методов (набор операций, применимых к данному объекту). С помощью понятия класс, объединяющего совокупности объектов с похожими свойствами и поведением, выстраиваются иерархия объектов. Каждый объект наследует свойства своего класса и может иметь свои собственные свойства. Программа в ООП – это совокупность объектов, обменивающихся между собой сообщениями. Языками ООП являются Smalltalk, C++, Delphi.
В основе концептуального программирования лежит идея автоматизированного синтеза программ на основе формальных спецификаций задачи. Например, для ограниченного класса задач, в которых важную роль играет описание отношений между переменными, была разработана система ПРИЗ.
loading