Аусбау-парадигма
- 1 year ago
- 0
- 0
Паради́гма программи́рования — совокупность идей и понятий, определяющих стиль написания компьютерных программ (подход к программированию ). Это способ концептуализации , определяющий организацию вычислений и структурирование работы, выполняемой компьютером .
Парадигма программирования не определяется однозначно языком программирования ; практически все современные языки программирования в той или иной мере допускают использование различных парадигм ( мультипарадигменное программирование ). Так, на языке Си , который не является объектно-ориентированным , можно работать в соответствии с принципами объектно-ориентированного программирования, хотя это и сопряжено с определёнными сложностями; функциональное программирование можно применять при работе на любом императивном языке, в котором имеются функции, и т. д.
Также существующие парадигмы зачастую пересекающиеся друг с другом в деталях (например, модульное и объектно-ориентированное программирование), поэтому можно встретить ситуации, когда разные авторы употребляют названия из разных парадигм, говоря при этом, по сути, об одном и том же явлении.
Своим современным значением в научно-технической области термин «парадигма» обязан, по-видимому, Томасу Куну и его книге « Структура научных революций » (см. парадигма ). Кун называл парадигмами устоявшиеся системы научных взглядов, в рамках которых ведутся исследования. Согласно Куну, в процессе развития научной дисциплины может произойти замена одной парадигмы на другую (как, например, геоцентрическая небесная механика Птолемея сменилась гелиоцентрической системой Коперника ), при этом старая парадигма ещё продолжает некоторое время существовать и даже развиваться благодаря тому, что многие её сторонники, по тем или иным причинам, неспособны перестроиться для работы в другой парадигме.
Термин «парадигма программирования» впервые применил в 1978 году Роберт Флойд в своей лекции лауреата премии Тьюринга .
Флойд отмечает, что в программировании можно наблюдать явление, подобное парадигмам Куна, но, в отличие от них, парадигмы программирования не являются взаимоисключающими:
Если прогресс искусства программирования в целом требует постоянного изобретения и усовершенствования парадигм, то совершенствование искусства отдельного программиста требует, чтобы он расширял свой репертуар парадигм.
Таким образом, по мнению Роберта Флойда, в отличие от парадигм в научном мире, описанных Куном, парадигмы программирования могут сочетаться, обогащая инструментарий программиста.
Далеко не все авторы, использующие термин «парадигма программирования», решаются дать интенсиональное определение данному термину. Однако и те определения, которые удаётся найти, серьёзно отличаются друг от друга.
Диомидис Спинеллис даёт следующее определение :
Слово «парадигма» используется в программировании для определения семейства обозначений (нотаций), разделяющих общий способ (методику) реализаций программ.
Оригинальный текст (англ.)The word paradigm is used in computer science to talk about a family of notations that share a common way for describing program implementations
Для сравнения тот же автор приводит определения из других работ. В статье Дэниела Боброва парадигма определяется как « стиль программирования как описания намерений программиста ». Брюс Шрайвер (Bruce Shriver) определяет парадигму программирования как « модель или подход к решению проблемы » , Линда Фридман (Linda Friedman) — как « подход к решению проблем программирования ».
Памела Зейв ( Pamela Zave ) даёт определение парадигмы как « способа размышления о компьютерных системах » (в оригинале « way of thinking about computer systems ») .
Питер Вегнер ( Peter Wegner ) предлагает другой подход к определению термина парадигмы программирования. В его работе « Concepts and paradigms of object-oriented programming » парадигмы определяются как « правила классификации языков программирования в соответствии с некоторыми условиями, которые могут быть проверены ».
Тимоти Бадд предлагает понимать термин « парадигма » как « способ концептуализации того, что значит „производить вычисления“, и как задачи, подлежащие решению на компьютере, должны быть структурированы и организованы ».
Парадигма программирования как исходная концептуальная схема постановки проблем и их решения является инструментом грамматического описания фактов, событий, явлений и процессов, возможно, не существующих одновременно, но интуитивно объединяемых в общее понятие.