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

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

Промышленное название парадигмы Русская парадигма программирования Описание Примеры
Imperative (Императивное) Процедурное п. Код состоит из последовательных инструкций, изменяющих состояние программы. Инструкции могут группироваться в процедуры (или функции). C, Pascal, 1С, Go, Ada, Fortran
Imperative + Structured (Структурное) Структурное п. Код представлен иерархической структурой управляющих блоков Verilog HDL, C
Imperative + Stack-oriented (Стек-ориентированное) П. стековой нотации Код записывается в нотации для стековой машины (или компилируется в формат для стековой машины). Forth, PostScript, S-Lang
Imperative + OOP (ООП) Объектно-ориентированное п. Код записывается в виде манипуляций с объектами (экземплярами классов с полями и методами), отвечающим принципам абстракции, инкапсуляции, наследования и полиморфизма. Цель - повышение читабельности кода людьми, надежности и возможность многократного использования. C++, Ojective-C, C#, Java, Smalltalk, Kotlin, Rust
Applicative (Аппликативное) Функциональное п. Код записывается как набор функций, состоящих из композиции и/или вызова функций и данных. В отличие от императивного программирования, последовательность выполнения инструкций обычно не задается и функция не изменяет состояния данных, что решает проблему параллелизма вычислений на корню. Common Lisp, F#, XSLT, Haskell, LINQ, Erlang, Rust
Logic (Логическое) Логическое п. В основе просто автоматическое доказательство теорем дискретной математики и формальной логики, т.е. оперирование предикатами (фактами и правилами) над термами. Prolog, Mercury, Planner, Oz, Standard ML
Query language Язык запросов Искусственный язык запросов к информационным системам: базам данных, поисковым, структурированным документам. Главная особенность языка запросов - читабельность для человека, с сохранением строгости и однозначности получения результата. SQL / DDL, XPath, XQuery, LINQ, HQL, JPQL
Style sheet language Язык стилей Описывает стиль отображения пользователю интерфейса, структурированных данных или документов. Главная идея в возможности отображения одних и тех же данных в разных темах оформления или стилях для экранов разных устройств. Но на практике труден и запутан для дизайнеров, требует задействования специалиста верстальщика или программиста. CSS, LESS/Sass, Qt Style Sheets (QSS), Windows theme files, XSL / XSLT
Event-driven programming Событийно-ориентированное п. Выполнение программы определяется циклом событий: сигналами таймеров, сообщениями, действиями пользователя и другими прерываниями. JavaScript, ActionScript, Lazarus / Delphi, C#
Scripting language (скриптовый язык) Скриптовое п. (Сценарный язык) Изначально язык автоматизации задач от пользователя, с возможностью пошагового выполнения. В дальнейшем отличается от компилируемых языков лишь отсутствием предварительной полной компиляции в бинарный формат ОС для нативного выполнения на машине. JavaScript / ECMAScript, Lua, Perl, Python, VBA, Tk / Tcl, sed+awk, Bash, PowerShell, PHP
Markup language Язык разметки Язык разметки документа или отображения данных пользователю. HTML, XHTML, XML, SVG, LaTeX / TeX, XUL / XULRunner, SGML, Markdown, SubRip SRT, Enriched text