Википедия

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

Паради́гма программи́рования — совокупность идей и понятий, определяющих стиль написания компьютерных программ (подход к программированию). Это способ концептуализации, определяющий организацию вычислений и структурирование работы, выполняемой компьютером.

Парадигма программирования не определяется однозначно языком программирования; практически все современные языки программирования в той или иной мере допускают использование различных парадигм (мультипарадигменное программирование). Так, на языке Си, который не является объектно-ориентированным, можно работать в соответствии с принципами объектно-ориентированного программирования, хотя это и сопряжено с определёнными сложностями; функциональное программирование можно применять при работе на любом императивном языке, в котором имеются функции, и т. д.

Также существующие парадигмы зачастую пересекаются друг с другом в деталях (например, модульное и объектно-ориентированное программирование), поэтому можно встретить ситуации, когда разные авторы употребляют названия из разных парадигм, говоря при этом, по сути, об одном и том же явлении.

История термина

Своим современным значением в научно-технической области термин «парадигма» обязан, по-видимому, Томасу Куну и его книге «Структура научных революций» (см. парадигма). Кун называл парадигмами устоявшиеся системы научных взглядов, в рамках которых ведутся исследования. Согласно Куну, в процессе развития научной дисциплины может произойти замена одной парадигмы на другую (как, например, геоцентрическая небесная механика Птолемея сменилась гелиоцентрической системой Коперника), при этом старая парадигма ещё продолжает некоторое время существовать и даже развиваться благодаря тому, что многие её сторонники, по тем или иным причинам, неспособны перестроиться для работы в другой парадигме.

Термин «парадигма программирования» впервые применил в 1978 году Роберт Флойд в своей лекции лауреата премии Тьюринга.

Флойд отмечает, что в программировании можно наблюдать явление, подобное парадигмам Куна, но, в отличие от них, парадигмы программирования не являются взаимоисключающими:

Если прогресс искусства программирования в целом требует постоянного изобретения и усовершенствования парадигм, то совершенствование искусства отдельного программиста требует, чтобы он расширял свой репертуар парадигм.

Таким образом, по мнению Роберта Флойда, в отличие от парадигм в научном мире, описанных Куном, парадигмы программирования могут сочетаться, обогащая инструментарий программиста.

Различные определения

Далеко не все авторы, использующие термин «парадигма программирования», решаются дать интенсиональное определение данному термину. Однако и те определения, которые удаётся найти, серьёзно отличаются друг от друга.

Диомидис Спинеллис даёт следующее определение:

Слово «парадигма» используется в программировании для определения семейства обозначений (нотаций), разделяющих общий способ (методику) реализаций программ.

Для сравнения тот же автор приводит определения из других работ. В статье Дэниела Боброва парадигма определяется как «стиль программирования как описания намерений программиста». Брюс Шрайвер (Bruce Shriver) определяет парадигму программирования как «модель или подход к решению проблемы», Линда Фридман (Linda Friedman) — как «подход к решению проблем программирования».

Памела Зейв (Pamela Zave) даёт определение парадигмы как «способа размышления о компьютерных системах» (в оригинале «way of thinking about computer systems»).

Питер Вегнер (Peter Wegner) предлагает другой подход к определению термина парадигмы программирования. В его работе «Concepts and paradigms of object-oriented programming» парадигмы определяются как «правила классификации языков программирования в соответствии с некоторыми условиями, которые могут быть проверены».

Тимоти Бадд предлагает понимать термин «парадигма» как «способ концептуализации того, что значит „производить вычисления“, и как задачи, подлежащие решению на компьютере, должны быть структурированы и организованы».

Парадигма программирования как исходная концептуальная схема постановки проблем и их решения является инструментом грамматического описания фактов, событий, явлений и процессов, возможно, не существующих одновременно, но интуитивно объединяемых в общее понятие.

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

Подходы и приёмы

  • Структурное программирование
  • Процедурное программирование
  • Аппликативное программирование
  • Обобщённое программирование
  • Доказательное программирование
  • Порождающее программирование
  • Аспектно-ориентированное программирование
  • Агентно-ориентированное программирование
  • Контрактное программирование
  • Рекурсия
  • Автоматное программирование
  • Событийно-ориентированное программирование
  • Компонентно-ориентированное программирование
  • Грамотное программирование

Примечания

  1. Роганов, 2001, подраздел «Парадигмы программирования».
  2. R. W. Floyd. The Paradigms of Programming Архивная копия от 11 февраля 2007 на Wayback Machine Communications of the ACM, 22(8):455—460, 1979. Русский перевод см. в кн.: Лекции лауреатов премии Тьюринга за первые двадцать лет (1966—1985), М.: МИР, 1993.
  3. D. D. Spinellis. Programming paradigms as object classes: a structuring mechanism for multiparadigm programming. PhD thesis, University of London, London SW7 2BZ, United Kingdom, February 1994.
  4. D. G. Bobrow. If Prolog is the answer, what is the question. // Fifth Generation of Computer Systems, pages 138—145, Tokyo, Japan, November 1984. Institute for New Generation Computer Technology (ICOT), North-Holland.
  5. B. D. Shriver. Software paradigms. IEEE Software, 3(1):2, January 1986.
  6. L. W. Friedman. Comparative programming languages: generalizing the programming function. Prentice Hall, 1991, page 188.
  7. P. Zave. A compositional approach to multiparadigm programming. IEEE Software, 6(5): 15—25, September 1989.
  8. P. Wegner. Concepts and paradigms of object-oriented programming. {OOPS} messenger}, 1(1): 7—87, August 1990.
  9. T. A. Budd. Multi-Paradigm Programming in LEDA. Addison-Wesley, Reading, Massachusetts, 1995.

Литература

  • Роганов Е. А. Основы информатики и программирования. — М.: МГИУ, 2001. Архивная копия от 8 октября 2013 на Wayback Machine

Ссылки

  • Peter Van Roy. The principal programming paradigms (2008). Дата обращения: 29 марта 2015.

Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер, Информация о Парадигма программирования, Что такое Парадигма программирования? Что означает Парадигма программирования?

Paradi gma programmi rovaniya sovokupnost idej i ponyatij opredelyayushih stil napisaniya kompyuternyh programm podhod k programmirovaniyu Eto sposob konceptualizacii opredelyayushij organizaciyu vychislenij i strukturirovanie raboty vypolnyaemoj kompyuterom Paradigma programmirovaniya ne opredelyaetsya odnoznachno yazykom programmirovaniya prakticheski vse sovremennye yazyki programmirovaniya v toj ili inoj mere dopuskayut ispolzovanie razlichnyh paradigm multiparadigmennoe programmirovanie Tak na yazyke Si kotoryj ne yavlyaetsya obektno orientirovannym mozhno rabotat v sootvetstvii s principami obektno orientirovannogo programmirovaniya hotya eto i sopryazheno s opredelyonnymi slozhnostyami funkcionalnoe programmirovanie mozhno primenyat pri rabote na lyubom imperativnom yazyke v kotorom imeyutsya funkcii i t d Takzhe sushestvuyushie paradigmy zachastuyu peresekayutsya drug s drugom v detalyah naprimer modulnoe i obektno orientirovannoe programmirovanie poetomu mozhno vstretit situacii kogda raznye avtory upotreblyayut nazvaniya iz raznyh paradigm govorya pri etom po suti ob odnom i tom zhe yavlenii Istoriya terminaSvoim sovremennym znacheniem v nauchno tehnicheskoj oblasti termin paradigma obyazan po vidimomu Tomasu Kunu i ego knige Struktura nauchnyh revolyucij sm paradigma Kun nazyval paradigmami ustoyavshiesya sistemy nauchnyh vzglyadov v ramkah kotoryh vedutsya issledovaniya Soglasno Kunu v processe razvitiya nauchnoj discipliny mozhet proizojti zamena odnoj paradigmy na druguyu kak naprimer geocentricheskaya nebesnaya mehanika Ptolemeya smenilas geliocentricheskoj sistemoj Kopernika pri etom staraya paradigma eshyo prodolzhaet nekotoroe vremya sushestvovat i dazhe razvivatsya blagodarya tomu chto mnogie eyo storonniki po tem ili inym prichinam nesposobny perestroitsya dlya raboty v drugoj paradigme Termin paradigma programmirovaniya vpervye primenil v 1978 godu Robert Flojd v svoej lekcii laureata premii Tyuringa Flojd otmechaet chto v programmirovanii mozhno nablyudat yavlenie podobnoe paradigmam Kuna no v otlichie ot nih paradigmy programmirovaniya ne yavlyayutsya vzaimoisklyuchayushimi Esli progress iskusstva programmirovaniya v celom trebuet postoyannogo izobreteniya i usovershenstvovaniya paradigm to sovershenstvovanie iskusstva otdelnogo programmista trebuet chtoby on rasshiryal svoj repertuar paradigm Takim obrazom po mneniyu Roberta Flojda v otlichie ot paradigm v nauchnom mire opisannyh Kunom paradigmy programmirovaniya mogut sochetatsya obogashaya instrumentarij programmista Razlichnye opredeleniyaDaleko ne vse avtory ispolzuyushie termin paradigma programmirovaniya reshayutsya dat intensionalnoe opredelenie dannomu terminu Odnako i te opredeleniya kotorye udayotsya najti seryozno otlichayutsya drug ot druga Diomidis Spinellis dayot sleduyushee opredelenie Slovo paradigma ispolzuetsya v programmirovanii dlya opredeleniya semejstva oboznachenij notacij razdelyayushih obshij sposob metodiku realizacij programm Originalnyj tekst angl The word paradigm is used in computer science to talk about a family of notations that share a common way for describing program implementations Dlya sravneniya tot zhe avtor privodit opredeleniya iz drugih rabot V state Deniela Bobrova paradigma opredelyaetsya kak stil programmirovaniya kak opisaniya namerenij programmista Bryus Shrajver Bruce Shriver opredelyaet paradigmu programmirovaniya kak model ili podhod k resheniyu problemy Linda Fridman Linda Friedman kak podhod k resheniyu problem programmirovaniya Pamela Zejv Pamela Zave dayot opredelenie paradigmy kak sposoba razmyshleniya o kompyuternyh sistemah v originale way of thinking about computer systems Piter Vegner Peter Wegner predlagaet drugoj podhod k opredeleniyu termina paradigmy programmirovaniya V ego rabote Concepts and paradigms of object oriented programming paradigmy opredelyayutsya kak pravila klassifikacii yazykov programmirovaniya v sootvetstvii s nekotorymi usloviyami kotorye mogut byt provereny Timoti Badd predlagaet ponimat termin paradigma kak sposob konceptualizacii togo chto znachit proizvodit vychisleniya i kak zadachi podlezhashie resheniyu na kompyutere dolzhny byt strukturirovany i organizovany Paradigma programmirovaniya kak ishodnaya konceptualnaya shema postanovki problem i ih resheniya yavlyaetsya instrumentom grammaticheskogo opisaniya faktov sobytij yavlenij i processov vozmozhno ne sushestvuyushih odnovremenno no intuitivno obedinyaemyh v obshee ponyatie Osnovnye modeli programmirovaniyaImperativnoe programmirovanie Deklarativnoe programmirovanie Strukturnoe programmirovanie Funkcionalnoe programmirovanie Logicheskoe programmirovanie Obektno orientirovannoe programmirovanie Komponentno orientirovannoe programmirovanie Prototipno orientirovannoe programmirovanie Agentno orientirovannoe programmirovaniePodhody i priyomyStrukturnoe programmirovanie Procedurnoe programmirovanie Applikativnoe programmirovanie Obobshyonnoe programmirovanie Dokazatelnoe programmirovanie Porozhdayushee programmirovanie Aspektno orientirovannoe programmirovanie Agentno orientirovannoe programmirovanie Kontraktnoe programmirovanie Rekursiya Avtomatnoe programmirovanie Sobytijno orientirovannoe programmirovanie Komponentno orientirovannoe programmirovanie Gramotnoe programmirovaniePrimechaniyaRoganov 2001 podrazdel Paradigmy programmirovaniya R W Floyd The Paradigms of Programming Arhivnaya kopiya ot 11 fevralya 2007 na Wayback Machine Communications of the ACM 22 8 455 460 1979 Russkij perevod sm v kn Lekcii laureatov premii Tyuringa za pervye dvadcat let 1966 1985 M MIR 1993 D D Spinellis Programming paradigms as object classes a structuring mechanism for multiparadigm programming PhD thesis University of London London SW7 2BZ United Kingdom February 1994 D G Bobrow If Prolog is the answer what is the question Fifth Generation of Computer Systems pages 138 145 Tokyo Japan November 1984 Institute for New Generation Computer Technology ICOT North Holland B D Shriver Software paradigms IEEE Software 3 1 2 January 1986 L W Friedman Comparative programming languages generalizing the programming function Prentice Hall 1991 page 188 P Zave A compositional approach to multiparadigm programming IEEE Software 6 5 15 25 September 1989 P Wegner Concepts and paradigms of object oriented programming OOPS messenger 1 1 7 87 August 1990 T A Budd Multi Paradigm Programming in LEDA Addison Wesley Reading Massachusetts 1995 LiteraturaRoganov E A Osnovy informatiki i programmirovaniya M MGIU 2001 Arhivnaya kopiya ot 8 oktyabrya 2013 na Wayback MachineSsylkiPeter Van Roy The principal programming paradigms neopr 2008 Data obrasheniya 29 marta 2015

NiNa.Az

NiNa.Az - Абсолютно бесплатная система, которая делится для вас информацией и контентом 24 часа в сутки.
Взгляните
Закрыто