0

Что такое виды и парадигмы программирования?

Парадигмы программирования это наборы принципов и методик

Виды и парадигмы программирования составляют фундамент процесса разработки программного обеспечения. Ранее в статье Что такое программирование? мы писали, что процесс создания программы в основном определяется теми закономерностями, которые концентрируются в понятиях виды и парадигмы программирования.

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

Виды программирования определяют прикладную особенность процесса программирования, содержательная особенность этого процесса характеризуется парадигмой программирования.

В зависимости от предмета приложения различают следующие виды программирования:

  • системное программирование, связанное с разработкой операционных систем(драйверов), систем разработки программного обеспечения(компиляторов, отладчиков и т.п.);
  • сетевое программирование это процесс создание программных систем, которые будут работать в существующей локальной, корпоративной или глобальной сети;
  • прикладное программирование — процесс создание программных продуктов, предназначенных для решения прикладных задач бизнеса, IТ- технологии и т.п.;
  • Web-программирование — написание кода на специальных “скриптовых языках” для использования в веб-браузерах или на Web-серверах, предназначенного для создание страниц сайтов, блогов и т.п.;
  • мобильное программирование — написание кода на специальных языках для мобильных приложений, под мобильные операционные системы и платформы.

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

Кроме вида программирования процесс создания программы характеризуется и таким понятием как парадигмы программирования. В общем случае с философской точки зрения парадигма это устоявшаяся система научных взглядов, в рамках которой ведутся исследования (Т. Кун).

В данном случае парадигма отражает систему взглядов на форму(структуру) и содержание процесса программирования. К сожалению, в обиходе наблюдается несколько различных определений парадигмы программирования, которые не всегда точно соответствуют ее научному понятию.

Вот некоторые из них:

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

С другими вариантами,не менее экзотических определений, можно познакомиться в статье «Парадигма программирования«.

В этих определениях парадигмы программирования такие понятия как стиль(приемы) программирования, концепция организации вычислений и классификация языков программирования являются синонимами. На наш взгляд это не верно. Это разные вещи. Каждое из этих понятий важно для программирования и заслуживает особого внимания, но для определения парадигмы программирования они не совсем подходят, поэтому в данной статье о них речь не идет.

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

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

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

парадигма императивного программирования — декомпозиции нет, в исходном коде программы записываются инструкции (команды), которые должны выполняться последовательно, а переходы осуществляются с помощью оператора go to, используемые данные могут читаться из памяти и записываться в память;

парадигма структурного программирования, в соответствии с которой любая программа, которая строится без использования оператора go to, а состоит из совокупности трёх базовых управляющих конструкций, реализующих три базовых алгоритмические структуры: последовательность,  ветвление и повторение, при этом разработка программы ведётся пошагово, методом «сверху вниз»;

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

парадигма объектно-ориетированного программирования, когда выполняется декомпозиция решаемой задач(предметной области) на объекты, а программа представляется в виде совокупности взаимодействующих объектов, созданных на основе предопределенных типов данных — классов;

парадигма аспектно-ориентированного программирования, когда декомпозиция задачи осуществляется на определенные аспекты(цели, особенности функционирования системы), а в программе реализуется, так называемая, сквозная функциональность, предназначенная для решения специальных задач с точки зрения определенных аспектов;

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

Примечание. На наш взгляд на современном уровне развития термин парадигма структурного программирования не является корректным. Потому что и процедурное и объектно ориентированное программирование являются структурными. Это понятие было введено Эдсгером Дейкстрой и на тот момент было вполне корректным, поэтому изменять его не будем.

Другие виды парадигмы программирования, которых сегодня достаточно много, в данной статье рассматривать не будем. Остановимся на перечислении. Основные виды или парадигмы программирования: процедурное, операторное, функциональное, логическое, структурное (модульное), объектно-ориентированное,графическое, экстремальное, декларативное; логическое и др.

Иногда можно встретить такое понятие, как парадигма модульного программирования. Но это не верно. Модульное программирование это не парадигма, а способ организации структуры программы в виде взаимодействующих модулей, в каждый из которых можно разместить блоки управляющих конструкций, процедуры, объекты и т.п.

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

Заключение

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

Виды и парадигмы программирования это фундамент процесса написания кода программы на основе алгоритмов обработки структур данных.

Виды программирования определяют прикладную особенность процесса программирования. В различных видах программирования используются различные алгоритмы и структуры данных.

Парадигмы программирования это набор принципов и методик написания кода программы на основе алгоритмов обработки структур данных.

Для того, чтобы были достигнуты высокие профессиональные навыки в программировании, то для программистов на языках C# и C++ будет полезно знание кроме языков платформы программирования dotNet Framework. Аналогично для бывалых программистов на языка Java следует при разработке приложений учитывать особенности и возможности платформы программирования на языке Java.

Смотрите также…

  1. Как стать программистом?
  2. Как стать Web программистом?
  3. Онлайн школы и курсы IT профессий
  4. Как изучать простые типы данных языка программирования?
  5. Как изучать алгоритмы решения задач по математическим преобразованиям?
  6. Что выбирать язык или платформу программирования?
  7. Пример процедурного программирования на языке Crystal
  8. Пример ООП на языке программирования Crystal
  9. Курсы и высшее образование в профессии программиста
  10. Интегрированные средства разработки программного обеспечения
Внимание! Кто хочет своевременно узнавать о выходе новой статьи на сайте должен подписаться.

ПОДПИСКА НА РАССЫЛКУ

Статьи об онлайн курсах обучения

Дистанционное обучение
Обучение программированию
Проектирование информационных систем
 
Реклама. Информация о рекламодателе по ссылкам в статье.

brasm

Пенсионер с 33 - летним педагогическим стажем

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *