Парадигма программирования: различия между версиями

тексту возвращена лаконичность
(тексту возвращена лаконичность)
{{Парадигмы программирования}}
'''Паради́гма программи́рования''' — это система идей и понятий, определяющих стиль написания компьютерных программ, а также образ мышления программиста.
'''Паради́гма программи́рования''' — это совокупность идей и понятий, определяющих стиль написания программ. [[Парадигма]] в первую очередь определяется базовой программной единицей и самим принципом достижения модульности программы. В качестве этой единицы выступают определение ([[Декларативное программирование|декларативное]], [[функциональное программирование]]), действие ([[императивное программирование]]), правило (продукционное программирование), [[диаграмма]] переходов ([[автоматное программирование]]) и др. сущности. В современной индустрии программирования очень часто парадигма программирования определяется набором инструментов программиста, а именно, [[Язык программирования|языком программирования]] и используемыми [[Библиотека функций (программирование)|библиотеками]].
 
Важно отметить, что парадигма программирования не определяется однозначно языком программирования —; многиепрактически все современные языки программирования являютсяв мультипарадигменными,той или тоиной естьмере допускают использование различных парадигм. Так на языке [[Язык программирования Си|Си]], который не является объектно-ориентированным, можно писатьработать в соответствии с принципами объектно-ориентированнымориентированного образомпрограммирования, ахотя наэто [[Ruby]],и всопряжено основус которогоопределёнными всложностями; значительнойфункциональное степенипрограммирование положенаможно объектно-ориентированнаяприменять парадигмапри работе на любом императивном языке, можнов писатькотором согласноимеются стилюфункции функционального(для программированияэтого достаточно не применять присваивание), и т.д.
Парадигма программирования определяет то, в каких терминах [[программист]] описывает логику программы. Например, в [[Императивное программирование|императивном программировании]] программа описывается как последовательность действий, а в [[Функциональное программирование|функциональном программировании]] представляется в виде выражения и множества определений функций (слово ''определение'' ({{lang-en|definition}}) следует понимать в математическом смысле). В популярном [[Объектно-ориентированное программирование|объектно-ориентированном программировании]] (в дальнейшем ООП) программу принято рассматривать как набор взаимодействующих объектов. ООП, в основном<ref>ООП — прежде всего это стиль программирования. Поддержка ООП со стороны языка развита в императивных языках, вследствие их популярности, но это не означает, что нельзя писать ООП программы на языках логической (например, на Прологе), функциональной (например, на Лиспе) и других парадигм.</ref>, есть по сути императивное программирование, дополненное принципом [[Инкапсуляция (программирование)|инкапсуляции]] данных и методов в объект (принцип модульности) и наследованием (принципом повторного использования разработанной функциональности).
 
Важно отметить, что парадигма программирования не определяется однозначно языком программирования — многие современные языки программирования являются мультипарадигменными, то есть допускают использование различных парадигм. Так на языке [[Язык программирования Си|Си]], который не является объектно-ориентированным, можно писать объектно-ориентированным образом, а на [[Ruby]], в основу которого в значительной степени положена объектно-ориентированная парадигма, можно писать согласно стилю функционального программирования.
 
Приверженность определённого человека какой-то одной парадигме иногда носит настолько сильный характер, что споры о преимуществах и недостатках различных парадигм относятся в околокомпьютерных кругах к разряду так называемых «религиозных» войн — [[:wikt:холивар|холиваров]].