This articlepossibly containsoriginal research. Pleaseimprove it byverifying the claims made and addinginline 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 ofparadigms 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 | Library | — | Library | Array (multi-dimensional; usingSTL) |
| 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 | — | — | 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 | — | — | 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 | Partial | Yes | — | Library | Multiple dispatch, Array (multi-dimensional); optionallylazy |
| 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 | — | — | — | 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 |