Бортовой журнал Ктулху

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

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

 

 

Парадигмы программирования можно разделить на те, которые описывают структуру программы, и те, которые описывают поведение. Рассмотрим эти различия:

Парадигмы, описывающие структуру программы

Процедурное программирование:

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

Языки:

C, Python, Bash, Fortran, Pascal.

2024 08 21 17.26.22

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

Последовательное выполнение:

В языке C основной код выполняется последовательно, начиная с функции main в C.

Нет сложной структуры:

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

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

 

Объектно-ориентированное программирование (ООП):

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

 

Вот простой пример объектно-ориентированного программирования на PHP. В этом примере мы создадим два класса: Animal и Dog. Класс Dog будет наследовать от класса Animal и переопределять метод для демонстрации полиморфизма. 

2024 08 21 17.39.51

2024 08 21 17.40.54

 

Модульное программирование:

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

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

JavaScript, Python, PHP, C#, Java, Ruby

2024 08 23 09.07.34

Парадигмы, описывающие поведение программы

Функциональное программирование:

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

Haskell, Elixir, Scala, Erlang, F#, JavaScript, Python

2024 08 23 10.29.59 

Императивное программирование:

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

C, C++, Python, Java, JavaScript, Ruby, PHP, Go, Rust

2024 08 23 10.32.11

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

Декларативное программирование:

Декларативное программирование — это стиль программирования, где программист описывает что нужно сделать, а не как это сделать. В декларативной парадигме программист задаёт цель, а конкретные шаги выполнения оставляет на усмотрение системы (компилятора, интерпретатора или движка).

SQL, HTML, CSS, Prolog, Haskell, XSLT, R

Самый простой пример - SQL-запрос, где описывается результат, который необходимо получить.

2024 08 23 11.18.12