works:programmer:other:paradigm
Парадигма программирования
Парадигмы программирования – способ классификации языков программирования в зависимости от их ключевых особенностей, понятий и принципов. Это необходимо для сравнения языков и упрощения выбора подходящего языка программирования, когда он есть.
Промышленное название парадигмы | Русская парадигма программирования | Описание | Примеры |
---|---|---|---|
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 |
works/programmer/other/paradigm.txt · Последнее изменение: 2021/12/09 09:39 — 127.0.0.1