Парадигма программирования как исходная концептуальная схема постановки проблем и их решения является инструментом грамматического описания фактов, событий, явлений и процессов, возможно, не существующих одновременно, но интуитивно объединяемых в общее понятие.
Структурное программирование
Некоторые представители: Fortran, Pascal, C.
Директивная программа предписывает, как достичь результата, пошагово описывая действия. Поэтому такое программирование является достаточно легким для понимания.
В структурном программировании от входных данных полностью зависит последовательность выполнения команд.
Объектно-ориентированное программирование
Представители объектно-ориентированных языков: С++, Java, Python.
Особое внимание уделяется данным, которые представляются в программе в виде объектов. Объекты взаимодействуют между собой с помощью механизма передачи сообщений. Задача программиста - реализовать такие объекты, при взаимодействии которых можно будет получать желаемый результат.
ООП призвано решать более сложные и объемные задачи по сравнению с директивным программированием.
В основе ООП лежат такие понятия как наследование, полиморфизм и инкапсуляция.
Операциональное программирование (языки программирования типа ассемблеров, Бейсика, Фортрана). Программа «собирается» из мелких деталей, отдельных операций и имеет достаточно простую структуру: область глобальных данных и подпрограммы. Уровень абстрагирования - отдельное действие, принципы декомпозиции задачи отсутствуют, во всяком случае, о них не говорят.
Нисходящая технология конструирования программ. Суть нисходящего конструирования программ в разбивке большой задачи на меньшие подзадачи, которые могут рассматриваться отдельно.
Модульное программирование. Достаточно независимые фрагменты задачи оформляются как модули. Создаются библиотеки модулей, разрабатывается механизм включения модулей в разрабатываемую программу. Модуль должен иметь строго определенный интерфейс и скрытую часть, одну точку входа и одну точку выхода.