IT-РАБОТА · РЕГИОН: СИБИРЬ

 

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

Одним из важнейших понятий в теории программирования является «парадигма». Этот инструмент следует знать вне зависимости от масштабов разработки, он является основой, на которой держится большинство знаний в данной области.

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

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

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

Одна из характерных черт такой парадигмы изменение значения переменных присвоением, при котором старое значение «разрушается», то есть переменной A, имевшей значение B, присвоено значение C, а предыдущее значение забыто. В техническом плане это описывается как переход между состояниями посредством определенной команды.

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

Декларированное программирование является противоположностью императивному, так как описывается итоговый результат, а не метод его получения, в качестве примера можно привести HTML.

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

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

Объектно-ориентированное программирование является логическим продолжением событийно-управляемого программирования, дополняя его более удобными и гибкими возможностями. Основным понятием данной методологии является «объект», являющийся экземпляром «класса». Класс, в свою очередь, является описанием определенной сущности, каркасом, по которому создается объект в памяти вычислительной машины. Когда объект получает сообщение, вызывается определенный метод для его обработки. Также в объектно-ориентированном программировании есть понятие наследования, то есть на основе одного класса можно создать другой с использованием свойств класса-предка как частичным, так и полным.

Использование сообщений в данной парадигме имеет следующие преимущества. Объекты при обращении друг к другу посредством сообщений не имеют прямого доступа к данным «собеседника», что исключает нарушение внутренней структуры объектов. Это понятие называется инкапсуляцией. Объекты при взаимодействии не знают результаты обработки посланного сообщения. В терминах программирования это называется абстракцией. При замене одного объекта на другой способный обрабатывать подобные сообщения, процесс исполнения реализуем. Данное свойство принято называть полиморфизм.

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

Следующая статья: Интеграция и тестирование в методиках программирования

Оставить комментарий

Внимание!!! При копировании материалов сайта ссылка на источник обязательна.

Счетчики: