От: | Геннадий Васильев | http://www.livejournal.com/users/gesha_x | |
Дата: | 13.04.06 04:58 | ||
Оценка: | 8 (3) +3 -5 |
Парадигма программирования — это парадигматический стиль программирования (сравн. с методологией, которая суть парадигматический стиль программного инжиниринга).
П.п. предполагает (и определяет) взгляд программиста на работу программы. Например, исходя из ООП, программист может думать о программе, как о наборе взаимодействующих объектов, тогда как с позиций функционального программирования о программе можно думать, как о последовательности функций, не имеющих состояния.
Тогда как разделы программного инжиниринга отстаивают различные методологии, различные языки продвигают различные парадигмы программирования. Одни языки разработаны для поддержки одной определённой парадигмы (Smalltalk, Java — объектно-ориентированное программирование, Haskell, Scheme — функциональное программирование), другие же поддерживают несколько парадигм (напр. Common Lisp, Python, Oz).
Многие парадигмы программирования хорошо определяют, от чего они отказываются и что разрешают. Например, чистое функциональное программирование запрещает использование побочных эффектов; структурное программирование запрещает использование goto. В частности, именно поэтому новые парадигмы часто кажутся слишком жёстким отношением к имевшим место стилям. Однако, такое ниспровержение имеющихся подходов может упростить доказательство теорем о корректности программ или, как минимум, облегчить понимание их работы без ограничений общности языка программирования.
Отношения между П.п. и языками программирования могут быть сложными, поскольку языки программирования могут поддерживать разные парадигмы. Например, C++ разработан для поддержки элементов процедурного, объектно-базированного, объектно-ориентированного и обобщённого программирования. Кто-то может писать процедурные программы на C++, кто-то — чистые объектно-ориентированные и кто-то — объединить элементы этих парадигм.