![]() |
This article possibly contains original research. Please improve itbyverifying the claims made and adding inline citations. Statements consisting only of original research should be removed. (August 2009) (Learn how and when to remove this message)
|
Programming languages can be grouped by the number and types of paradigms supported.
A concise reference for the programming paradigms listed in this article.
Language |
Paradigm count
|
Concurrent
|
Constraints
|
Dataflow
|
Declarative
|
Distributed
|
Functional
|
Metaprogramming
|
Generic
|
Imperative
|
Logic
|
Reflection
|
Object-oriented
|
Pipelines
|
Visual
|
Rule-based
|
Other |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ada |
5 | Yes |
— | — | — | Yes | — | — | Yes | Yes | — | — | Yes |
— | — | — | — |
ALF | 2 | — | — | — | — | — | Yes | — | — | — | Yes | — | — | — | — | — | — |
AmigaE [citation needed] |
2 | — | — | — | — | — | — | — | — | Yes | — | — | Yes |
— | — | — | — |
APL | 3 | — | — | — | — | — | Yes | — | — | Yes | — | — | — | — | — | — | Array (multi-dimensional) |
BETA [citation needed] |
3 | — | — | — | — | — | Yes | — | — | Yes | — | — | Yes |
— | — | — | — |
C++ | 7 (15) | Yes |
Library |
Library |
Library |
Library |
Yes | Yes |
Yes |
Yes | Library |
Library |
Yes |
Yes |
— | Library |
Array (multi-dimensional; using STL) |
C# | 6 (7) | Yes | — | Library |
— | — | Yes |
— | Yes | Yes | — | Yes | Yes |
— | — | — | Reactive |
ChucK [citation needed] |
3 | Yes | — | — | — | — | — | — | — | Yes | — | — | Yes |
— | — | — | — |
Claire | 2 | — | — | — | — | — | Yes | — | — | — | — | — | Yes |
— | — | — | — |
Clojure | 5 | Yes |
— | — | Yes | — | Yes |
Yes |
— | — | Library |
— | — | Yes |
Editor |
— | Multiple dispatch, |
Common Lisp | 7 (14) | Library |
Library |
Library |
Yes |
Library |
Yes | Yes | Yes |
Yes | Library |
Yes | Yes |
Library |
Library |
Library |
Multiple dispatch, meta-OOP system, |
Curl | 5 | — | — | — | — | — | Yes | — | Yes |
Yes | — | Yes | Yes |
— | — | — | — |
Curry | 4 | Yes | Yes | — | — | — | Yes | — | — | — | Yes | — | — | — | — | — | — |
D (version 2.0) |
7 | Yes |
— | — | — | — | Yes | Yes |
Yes |
Yes | — | Yes | Yes |
— | — | — | — |
Delphi | 3 | — | — | — | — | — | — | — | Yes |
Yes | — | — | Yes |
— | — | — | — |
Dylan [citation needed] |
3 | — | — | — | — | — | Yes | — | — | — | — | Yes | Yes |
— | — | — | — |
E | 3 | Yes | — | — | — | Yes | — | — | — | — | — | — | Yes |
— | — | — | — |
ECMAScript |
4 (5) | Partial |
— | — | Library |
— | Yes | — | — | Yes | — | Yes | Yes |
Library |
Editor |
— | Reactive, |
Erlang | 3 | Yes | — | — | Yes | Yes | Yes | — | — | — | — | — | — | Yes | — | — | — |
Elixir | 4 | Yes | — | — | — | Yes | Yes | Yes | — | — | — | — | — | Yes | — | — | — |
Elm | 6 | Yes | — | Yes | Yes | — | Yes (pure) |
— | Yes | — | — | — | — | Yes | — | — | Reactive |
F# | 7 (8) | Yes |
— | Library |
Yes | — | Yes | — | Yes | Yes | — | Yes | Yes |
— | — | — | Reactive |
Fortran | 4 (5) | Yes | — | — | — | — | Yes |
— | Yes |
— | — | — | Yes |
— | — | — | Array (multi-dimensional) |
Go | 4 | Yes | — | — | — | — | — | — | — | Yes | — | Yes | — | Yes | — | — | — |
Haskell | 8 (15) | Yes | Library |
Library |
Yes | Library |
Yes (lazy) (pure) |
Yes |
Yes | Yes | Library |
— | Partial |
Yes | Yes | Library |
Literate, reactive, dependent types (partial) |
Io | 4 | Yes |
— | — | — | — | Yes | — | — | Yes | — | — | Yes |
— | — | — | — |
J [citation needed] |
3 | — | — | — | — | — | Yes | — | — | Yes | — | — | Yes |
— | — | — | — |
Java | 6 | Yes | Library |
Library |
— | — | Yes | — | Yes | Yes | — | Yes | Yes |
— | — | — | — |
Julia | 9 (17) | Yes | Library |
Library |
Library |
Yes | Yes (eager) | Yes | Yes | Yes | Library |
Yes | Yes |
Yes | — | Library |
Multiple dispatch, Array (multi-dimensional); optionally lazy |
Kotlin | 8 | Yes | — | — | — | — | Yes | Yes | Yes | Yes | — | Yes | Yes | Yes | — | — | — |
LabVIEW | 4 | Yes | — | Yes | — | — | — | — | — | — | — | — | Yes | — | Yes | — | — |
Lava | 2 | — | — | — | — | — | — | — | — | — | — | — | Yes |
— | Yes | — | — |
LispWorks (version 6.0 with support for symmetric multi-processing, rules, logic (Prolog), CORBA) | 9 | Yes | — | — | — | Yes | Yes | Yes | — | Yes | Yes | Yes | Yes |
— | — | Yes | — |
Lua [citation needed] |
3 | — | — | — | — | — | Yes | — | — | Yes | — | — | Yes |
— | — | — | — |
MATLAB | 6 (10) | Toolbox |
Toolbox |
Yes |
— | Toolbox |
— | Yes |
Yes |
— | — | Yes |
Yes |
— | Yes |
— | Array (multi-dimensional) |
Nemerle | 7 | Yes | — | — | — | — | Yes | Yes | Yes | Yes | — | Yes | Yes |
— | — | — | — |
Object Pascal | 4 | Yes | — | — | — | — | Yes | — | — | Yes | — | — | Yes |
— | — | — | — |
OCaml | 4 | — | — | — | — | — | Yes | — | Yes | Yes | — | — | Yes |
— | — | — | — |
Oz | 11 | Yes | Yes | Yes | Yes | Yes | Yes | — | — | Yes | Yes | — | Yes |
Yes | — | Yes | — |
Perl [citation needed] |
8 (9) | Yes |
— | Yes |
— | — | Yes | Yes | — | Yes | — | Yes |
Yes |
Yes | — | — | — |
PHP |
4 | — | — | — | — | — | Yes | — | — | Yes | — | Yes | Yes |
— | — | — | — |
Poplog | 3 | — | — | — | — | — | Yes | — | — | Yes | Yes | — | — | — | — | — | — |
Prograph | 3 | — | — | Yes | — | — | — | — | — | — | — | — | Yes |
— | Yes | — | — |
Python | 5 (10) | Library |
Library |
— | — | Library |
Yes | Yes |
Yes |
Yes | Library |
Yes | Yes |
— | Editor |
— | Structured |
R | 4 (6) | Library |
— | — | — | Library |
Yes | — | — | Yes | — | Yes | Yes | Yes |
— | — | Array (multi-dimensional) |
Racket | 10 | Yes |
Yes |
Yes |
— | Yes |
Yes | Yes | — | Yes | Yes | Yes | Yes | — | — | — | Lazy |
Raku | 10 | Yes |
Library |
Yes |
— | Library |
Yes | Yes |
Yes |
Yes | — | Yes |
Yes |
Yes | — | — | Multiple dispatch, lazy lists, reactive. |
ROOP | 3 | — | — | — | — | — | — | — | — | Yes | Yes | — | — | — | — | Yes | — |
Ruby | 5 | — | — | — | — | — | Yes | Yes | — | Yes | — | Yes | Yes |
— | — | — | — |
Rust (version 1.0.0-alpha) | 6 | Yes |
— | — | — | — | Yes | Yes |
Yes |
Yes | — | — | Yes | — | — | — | Linear, affline, and ownership types |
Sather [citation needed] |
2 | — | — | — | — | — | Yes | — | — | — | — | — | Yes |
— | — | — | — |
Scala |
9 | Yes |
— | Yes |
Yes | — | Yes | Yes | Yes | Yes | — | Yes | Yes |
— | — | — | — |
Simula [citation needed] |
2 | — | — | — | — | — | — | — | — | Yes | — | — | Yes |
— | — | — | — |
SISAL | 3 | Yes | — | Yes | — | — | Yes | — | — | — | — | — | — | — | — | — | — |
Spreadsheets | 2 | — | — | — | — | — | Yes | — | — | — | — | — | — | — | Yes | — | — |
Swift | 7 | Yes | — | — | — | — | Yes | Yes | Yes | Yes | — | Yes | Yes |
— | — | — | Block-structured |
Tcl with Snit extension [citation needed] |
3 | — | — | — | — | — | Yes |
— | — | Yes | — | — | Yes |
— | — | — | — |
Visual Basic .NET | 6 (7) | Yes | — | Library |
— | — | Yes | — | Yes | Yes | — | Yes | Yes |
— | — | — | Reactive |
Windows PowerShell | 6 | — | — | — | — | — | Yes | — | Yes | Yes | — | Yes | Yes |
Yes | — | — | — |
Wolfram Language & Mathematica | 13 |
Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
— | Yes | Knowledge Based |
| |
---|---|
Level |
|
Generation |
|