0% found this document useful (0 votes)
20 views

Comparison of Multi-Paradigm Programming Languages - Wikipedia

The document provides an overview of multi-paradigm programming languages and their support for different programming paradigms. It lists several languages and indicates which paradigms each supports, such as concurrent, declarative, functional, imperative, and object-oriented programming.

Uploaded by

Radwan Ahmet
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views

Comparison of Multi-Paradigm Programming Languages - Wikipedia

The document provides an overview of multi-paradigm programming languages and their support for different programming paradigms. It lists several languages and indicates which paradigms each supports, such as concurrent, declarative, functional, imperative, and object-oriented programming.

Uploaded by

Radwan Ahmet
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Comparison of multi-paradigm programming languages - ... https://en.wikipedia.org/wiki/Comparison_of_multi-parad...

Comparison of multi-paradigm programming languages


(Redirected from Multi-paradigm programming language)

Programming languages can be grouped by the number and types of paradigms supported.

Paradigm summaries
A concise reference for the programming paradigms listed in this article.

▪ Concurrent programming – have language constructs for concurrency, these may involve multi-threading, support for distributed
computing, message passing, shared resources (including shared memory), or futures

▪ Actor programming – concurrent computation with actors that make local decisions in response to the environment (capable of selfish
or competitive behaviour)
▪ Constraint programming – relations between variables are expressed as constraints (or constraint networks), directing allowable solutions
(uses constraint satisfaction or simplex algorithm)
▪ Dataflow programming – forced recalculation of formulas when data values change (e.g. spreadsheets)
▪ Declarative programming – describes what computation should perform, without specifying detailed state changes c.f. imperative
programming (functional and logic programming are major subgroups of declarative programming)
▪ Distributed programming – have support for multiple autonomous computers that communicate via computer networks
▪ Functional programming – uses evaluation of mathematical functions and avoids state and mutable data
▪ Generic programming – uses algorithms written in terms of to-be-specified-later types that are then instantiated as needed for specific
types provided as parameters
▪ Imperative programming – explicit statements that change a program state
▪ Logic programming – uses explicit mathematical logic for programming
▪ Metaprogramming – writing programs that write or manipulate other programs (or themselves) as their data, or that do part of the work at
compile time that would otherwise be done at runtime

▪ Template metaprogramming – metaprogramming methods in which a compiler uses templates to generate temporary source code,
which is merged by the compiler with the rest of the source code and then compiled
▪ Reflective programming – metaprogramming methods in which a program modifies or extends itself
▪ Object-oriented programming – uses data structures consisting of data fields and methods together with their interactions (objects) to
design programs

▪ Class-based – object-oriented programming in which inheritance is achieved by defining classes of objects, versus the objects
themselves
▪ Prototype-based – object-oriented programming that avoids classes and implements inheritance via cloning of instances
▪ Pipeline programming – a simple syntax change to add syntax to nest function calls to language originally designed with none
▪ Rule-based programming – a network of rules of thumb that comprise a knowledge base and can be used for expert systems and problem
deduction & resolution
▪ Visual programming – manipulating program elements graphically rather than by specifying them textually (e.g. Simulink); also termed
diagrammatic programming[1]

Language overview

1 of 6 5/9/24, 21:14
Comparison of multi-paradigm programming languages - ... https://en.wikipedia.org/wiki/Comparison_of_multi-parad...

List of multi-paradigm programming languages

Metaprogramming
Paradigm count

Object-oriented
Constraints

Declarative

Distributed
Concurrent

Imperative
Language Other

Rule-based
Functional

Reflection
Dataflow

Pipelines
Generic

Visual
Logic
Ada[2][3][4][5] Yes
5 Yes[a 1] No No No Yes No No Yes Yes No No [a 2] No No No No
[6]

ALF 2 No No No No No Yes No No No Yes No No No No No No

Yes
AmigaE 2 No No No No No No No No Yes No No [a 2] No No No No

Array (multi-
APL 3 No No No No No Yes No No Yes No No No No No No
dimensional)

Yes
BETA 3 No No No No No Yes No No Yes No No [a 2] No No No No

Array (multi-
7 Yes[7][8] Library Library Library Library Yes Yes Library Library Yes Library
C++ [9] [10] [11][12] [13][14] [15][16] Yes [17] [a 3] Yes [18][19] [20] [a 2] Yes[21] No [22] dimensional; using
(15)
STL)

6 Library Yes
C# Yes No [a 4] No No Yes[a 5] No Yes Yes No Yes [a 2] No No No Reactive[a 6]
(7)

Yes
ChucK 3 Yes No No No No No No No Yes No No [a 2] No No No No

Yes
Claire 2 No No No No No Yes No No No No No [a 2] No No No No

Yes[23] Yes Library Editor Multiple dispatch,


Clojure 5 [24] No No Yes No Yes[25] [26] No No [27] No No Yes[28] [29] No [30] Agents[31]

Multiple dispatch,
Yes
meta-OOP system,
Common 7 Library Library Library Library Yes Library [a 7] Library Library Library
[32] [33] [34] Yes[35] [36] Yes Yes [37] Yes [38] Yes [a 2] [40] [41] [42]
[43] Language is
Lisp (14)
[39] extensible via
metaprogramming.

Yes Yes
Curl 5 No No No No No Yes No [a 3] Yes No Yes [a 2] No No No No

Curry 4 Yes Yes No No No Yes No No No Yes No No No No No No

Yes
D (version Yes Yes
7 Yes[a 8] No No No No Yes [46]
[a 3] Yes No Yes [a 2] No No No No
2.0)[44][45] [a 3]

Yes Yes
Delphi 3 No No No No No No No [a 3] Yes No No [a 2] No No No No

Yes
Dylan 3 No No No No No Yes No No No No Yes [a 2] No No No No

Yes
E 3 Yes No No No Yes No No No No No No [a 2] No No No No

ECMAScript
[47][48]
Partial Reactive,[a 12][54]
(ActionScript, 4 [a 9] Library Yes Library Editor
No No [49][50] No Yes No No Yes No Yes [a 11] [51][52] [53] No event driven[a 13]
E4X, (5) [a 10] [a 14]

JavaScript,
JScript)

Erlang 3 Yes No No Yes Yes Yes No No No No No No Yes No No No

Elixir 4 Yes No No No Yes Yes Yes No No No No No Yes No No No

Yes
Elm 6 Yes No Yes Yes No (pure) No Yes No No No No Yes No No Reactive
[a 15]

7 Library Yes
F# Yes[a 8] No [a 4] Yes No Yes No Yes Yes No Yes [a 2] No No No Reactive[a 6]
(8)

4 Yes Yes Yes Array (multi-


Fortran (5)
Yes No No No No [a 15] No [a 16] No No No [a 2] No No No
dimensional)

Go 4 Yes No No No No No No No Yes No Yes No Yes No No No

Yes
Literate, reactive,
8 Library Library Library (lazy) Yes Library Partial Library
Haskell (15)
Yes [55] [56] Yes [57] (pure) [58] Yes Yes [59] No [a 17] Yes Yes [60] dependent types
[a 15] (partial)

2 of 6 5/9/24, 21:14
Comparison of multi-paradigm programming languages - ... https://en.wikipedia.org/wiki/Comparison_of_multi-parad...

Metaprogramming
Paradigm count

Object-oriented
Constraints

Declarative

Distributed
Concurrent

Imperative
Language Other

Rule-based
Functional

Reflection
Dataflow

Pipelines
Generic

Visual
Logic
Yes
Io 4 Yes[a 8] No No No No Yes No No Yes No No [a 11] No No No No

Yes
J 3 No No No No No Yes No No Yes No No [a 2] No No No No

Library Library Yes


Java 6 Yes [61] [62] No No Yes No Yes Yes No Yes [a 2] No No No No

Multiple dispatch,
Array (multi-
9 Library Library Library Yes Library Yes Library dimensional);
Julia (17)
Yes [63] [64][65] [66] Yes
(eager)
Yes Yes Yes [67] Yes [a 18] Yes No [68][69] optionally lazy[70]
and reactive (with
libraries)

Kotlin 8 Yes No No No No Yes Yes Yes Yes No Yes Yes Yes No No No

LabVIEW 4 Yes No Yes No No No No No No No No Yes No Yes No No

Yes
Lava 2 No No No No No No No No No No No [a 2] No Yes No No

LispWorks
(version 6.0
with support
for
symmetric Yes
9 Yes No No No Yes Yes Yes No Yes Yes Yes [a 2] No No Yes No
multi-
processing,
rules, logic
(Prolog),
CORBA)
Yes
Lua 3 No No No No No Yes No No Yes No No [a 11] No No No No

6 Toolbox Toolbox Toolbox Yes Yes Array (multi-


MATLAB [71] [72] Yes[73] No [74] No [75] [76] No No Yes[77] Yes[78] No Yes[79] No
(10) dimensional)

Yes
Nemerle 7 Yes No No No No Yes Yes Yes Yes No Yes [a 2] No No No No

Yes
Object Pascal 4 Yes No No No No Yes No No Yes No No [a 2] No No No No

Yes
OCaml 4 No No No No No Yes No Yes Yes No No [a 2] No No No No

Yes
Oz 11 Yes Yes Yes Yes Yes Yes No No Yes Yes No [a 2] Yes No Yes No

8 Library Yes
Perl Yes[80] [81] Yes[82] No No Yes Yes No Yes No Yes[a 2] [a 2] Yes No No No
(9)

Yes
PHP[83][84][85] 4 No No No No No Yes No No Yes No Yes [a 2] No No No No

Poplog 3 No No No No No Yes No No Yes Yes No No No No No No

Yes
Prograph 3 No No Yes No No No No No No No No [a 2] No Yes No No

Yes Yes
5 Library Library Library [90] [92] Library Yes Editor
Python (10) [86][87] [88] No No [89] Yes Yes [94] Yes [a 2] No [95] No Structured
[91] [93]

4 Library Library Array (multi-


R [96] No No No [97] Yes No No Yes No Yes Yes Yes[98] No No
(6) dimensional)

Yes
Racket 10 Yes[99] Yes[100] [101] No Yes[102] Yes Yes No Yes Yes Yes Yes No No No Lazy[103]

Yes Library Yes Yes Yes Yes Multiple dispatch,


Raku 10 Yes[104] Yes[105] [106] No [107] Yes [108] [109] Yes No [110] [111] Yes No No
lazy lists, reactive.

ROOP 3 No No No No No No No No Yes Yes No No No No Yes No

Yes
Ruby 5 No No No No No Yes Yes No Yes No Yes [a 2] No No No No

Yes
Rust (version Yes Linear, affline, and
6 Yes[a 8] No No No No Yes [112]
[114] Yes No No Yes No No No
1.0.0-alpha) [113] ownership types

3 of 6 5/9/24, 21:14
Comparison of multi-paradigm programming languages - ... https://en.wikipedia.org/wiki/Comparison_of_multi-parad...

Metaprogramming
Paradigm count

Object-oriented
Constraints

Declarative

Distributed
Concurrent

Imperative
Language Other

Rule-based
Functional

Reflection
Dataflow

Pipelines
Generic

Visual
Logic
Yes
Sather 2 No No No No No Yes No No No No No [a 2] No No No No

Yes Yes
Scala[115][116] 9 Yes[a 8] No [a 19] Yes No Yes Yes Yes Yes No Yes [a 2] No No No No

Yes
Simula 2 No No No No No No No No Yes No No [a 2] No No No No

SISAL 3 Yes No Yes No No Yes No No No No No No No No No No

Spreadsheets 2 No No No No No Yes No No No No No No No Yes No No

Yes
Swift 7 Yes No No No No Yes Yes Yes Yes No Yes [a 2] No No No Block-structured

Yes
Tcl with Snit Yes [a 11]
3 No No No No No [117] No No Yes No No No No No No
extension [118]

Visual Basic 6 Library Yes


Yes No [a 4] No No Yes No Yes Yes No Yes [a 2] No No No Reactive[a 6]
.NET (7)

Windows Yes
6 No No No No No Yes No Yes Yes No Yes [a 2] Yes No No No
PowerShell

Wolfram 13
[119] Yes
Language & Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes [120] No Yes Knowledge Based
(14)
Mathematica

See also
▪ Programming paradigm
▪ List of programming languages by type
▪ Domain-specific language
▪ Domain-specific multimodeling

Notes
1. rendezvous and monitor-like based 11. Prototype-based
2. class-based 12. using Reactive Extensions (RxJS) (http://reactivex.io/rxjs/)
3. template metaprogramming 13. in Node.js via their events (https://nodejs.org/api/events.html)
4. using TPL Dataflow (http://msdn.microsoft.com/en-us/devlabs/gg5 module
85582.aspx) 14. in browsers via their native EventTarget (https://developer.mozilla.
5. only lambda support (lazy functional programming) org/en-US/docs/Web/API/EventTarget) API
6. using Reactive Extensions (Rx) (http://msdn.microsoft.com/en-us/d 15. purely functional
ata/gg577609.aspx) 16. parameterized classes
7. multiple dispatch, method combinations 17. immutable
8. actor programming 18. multiple dispatch, not traditional single
9. promises, native extensions 19. Akka (http://doc.akka.io/docs/akka/snapshot/scala/dataflow.html)
10. using Node.js' cluster (https://nodejs.org/api/cluster.html) module Archived (https://web.archive.org/web/20130119045517/http://do
or child_process.fork (https://nodejs.org/api/child_process.html#ch c.akka.io/docs/akka/snapshot/scala/dataflow.html) 2013-01-19 at
ild_process_child_process_fork_modulepath_args_options) the Wayback Machine
method, web workers (https://developer.mozilla.org/en-US/docs/W
eb/API/Web_Workers_API/Using_web_workers) in the browser, etc.

Citations
1. Bragg, S.D.; Driskill, C.G. (20–22 September 1994). "Diagrammatic- 4. Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3 (http://www.ada
graphical programming languages and DoD-STD-2167A". ic.org/standards/05rm/html/RM-TTL.html), Section 12: Generic
Proceedings of AUTOTESTCON '94 (IEEEXplore). Institute of Electrical Units (http://www.adaic.org/standards/05rm/html/RM-12.html)
and Electronics Engineers (IEEE). pp. 211–220. 5. Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3 (http://www.ada
doi:10.1109/AUTEST.1994.381508 (https://doi.org/10.1109%2FAUTE ic.org/standards/05rm/html/RM-TTL.html), Section 6: Subprograms
ST.1994.381508). ISBN 978-0-7803-1910-3. S2CID 62509261 (http (http://www.adaic.org/standards/05rm/html/RM-6.html)
s://api.semanticscholar.org/CorpusID:62509261).
6. Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3 (http://www.ada
2. Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3 (http://www.ada ic.org/standards/05rm/html/RM-TTL.html), 3.9 Tagged Types and
ic.org/standards/05rm/html/RM-TTL.html), Section 9: Tasks and Type Extensions (http://www.adaic.org/standards/05rm/html/RM-3
Synchronization (http://www.adaic.org/standards/05rm/html/RM- -9.html)
9.html)
7. Thread support (http://en.cppreference.com/w/cpp/thread)
3. Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3 (http://www.ada
8. Atomics support (http://en.cppreference.com/w/cpp/atomic)
ic.org/standards/05rm/html/RM-TTL.html) Annex E: Distributed
Systems (http://www.adaic.org/standards/05rm/html/RM-E.html)

4 of 6 5/9/24, 21:14
Comparison of multi-paradigm programming languages - ... https://en.wikipedia.org/wiki/Comparison_of_multi-parad...

9. Memory model (https://cppandbeyond.wordpress.com/2011/04/11 48. Object-Oriented Programming in JavaScript (http://mckoss.com/jsc


/session-announcement-the-c0x-memory-model-and-why-you-car ript/object.htm) Archived (https://web.archive.org/web/201902100
e) 70220/http://mckoss.com/jscript/object.htm) 2019-02-10 at the
10. Gecode (http://www.gecode.org/) Wayback Machine gives an overview of object-oriented
11. SystemC (http://www.accellera.org/downloads/standards/systemc/ programming techniques in JavaScript.
about_systemc/) 49. "React – A JavaScript library for building user interfaces" (https://re
actjs.org/). 2019-04-08.
12. Boost.Iostreams (http://www.boost.org/libs/iostreams/)
13. Boolinq (https://code.google.com/p/boolinq/) 50. "TNG-Hooks" (https://github.com/getify/tng-hooks). GitHub.
2019-04-08.
14. "AraRat" (https://web.archive.org/web/20190819105358/http://ww
w.cs.technion.ac.il/~lkeren/scp.pdf) (PDF). Archived from the 51. "Lodash documentation" (https://lodash.com/docs/4.17.11#flow).
original (https://www.cs.technion.ac.il/~lkeren/scp.pdf) (PDF) on 2019-04-08.
2019-08-19. Retrieved 2019-09-15. 52. "mori" (https://swannodette.github.io/mori/#pipeline). 2019-04-08.
15. OpenMPI (http://www.open-mpi.org/) 53. "Light Table" (http://lighttable.com/). 2019-04-08.
16. Boost.MPI (http://www.boost.org/libs/mpi/) 54. "TNG-Hooks" (https://github.com/getify/tng-hooks). GitHub.
2019-04-08.
17. Boost.MPL (http://www.boost.org/libs/mpl/)
18. LC++ (http://cgi.di.uoa.gr/~smaragd/lc++/) 55. "Prolog embedding" (https://hackage.haskell.org/package/hswip).
Haskell.org.
19. Castor (http://www.mpprogramming.com/Cpp/Default.aspx)
Archived (https://web.archive.org/web/20130125024854/http://ww 56. "Functional Reactive Programming" (https://wiki.haskell.org/Functi
onal_Reactive_Programming). HaskellWiki.
w.mpprogramming.com/Cpp/Default.aspx) 2013-01-25 at the
Wayback Machine 57. Cloud Haskell (https://haskell-distributed.github.io/)
20. Reflect Library (https://bytemaster.github.com/boost_reflect/) 58. "Template Haskell" (https://wiki.haskell.org/Template_Haskell).
21. N3534 (http://www.open-std.org/JTC1/SC22/WG21/docs/papers/20 HaskellWiki.
13/n3534.html) 59. "Logict: A backtracking logic-programming monad" (https://hackag
e.haskell.org/package/logict). Haskell.org.
22. Boost.Spirit (http://www.boost.org/libs/spirit/)
23. Clojure - Concurrent Programming (https://clojure.org/about/conc 60. Kollmansberger, Steve; Erwig, Martin (30 May 2006). "Haskell Rules:
urrent_programming) Embedding Rule Systems in Haskell" (https://web.engr.oregonstat
e.edu/~erwig/HaskellRules/HaskellRules_June06.pdf) (PDF). Oregon
24. Clojure - core.async (https://github.com/clojure/core.async) State University.
25. Clojure - Functional Programming (https://clojure.org/about/functi 61. https://jcp.org/en/jsr/detail?id=331 JSR 331: Constraint
onal_programming) Programming API
26. Clojure - Macros (https://clojure.org/reference/macros) 62. https://github.com/GoogleCloudPlatform/DataflowJavaSDK Google
27. Clojure - core.logic (https://github.com/clojure/core.logic/) Cloud Platform Dataflow SDK
28. Clojure - Threading Macros Guide (https://clojure.org/guides/threa 63. "JuliaOpt/JuMP.jl" (https://github.com/JuliaOpt/JuMP.jl). GitHub.
ding_macros) JuliaOpt. 11 February 2020. Retrieved 12 February 2020.
29. "Light Table" (http://lighttable.com/). 2019-04-08. 64. "GitHub - MikeInnes/DataFlow.jl" (https://github.com/MikeInnes/D
30. Multimethods and Hierarchies (https://clojure.org/reference/multi ataFlow.jl). GitHub. 2019-01-15.
methods) 65. "GitHub - JuliaGizmos/Reactive.jl: Reactive programming primitives
31. Agents and Asynchronous Actions (https://clojure.org/reference/ag for Julia" (https://github.com/JuliaGizmos/Reactive.jl). GitHub.
ents) 2018-12-28.
32. [1] (https://www.cliki.net/Concurrency) many concurrency 66. https://github.com/davidanthoff/Query.jl Query almost anything in
paradigms implemented as language extensions julia
33. [2] (https://www.cliki.net/screamer) constraint programming inside 67. https://github.com/lilinjn/LilKanren.jl A collection of Kanren
CL through extensions implementations in Julia
34. [3] (https://www.cliki.net/Cells) dataflow extension 68. "GitHub - abeschneider/PEGParser.jl: PEG Parser for Julia" (https://g
35. [4] (http://www.gigamonkeys.com/book/practical-an-html-generati ithub.com/abeschneider/PEGParser.jl). GitHub. 2018-12-03.
on-library-the-interpreter.html) by creating DSLs using the built-in 69. "GitHub - gitfoxi/Parsimonious.jl: A PEG parser generator for Julia"
metaprogramming; also see note on functional, constraint and (https://github.com/gitfoxi/Parsimonious.jl). GitHub. 2017-08-03.
logic paradigms, which are part of declarative 70. Lazy https://github.com/MikeInnes/Lazy.jl
36. [5] (https://www.cliki.net/Distributed) MPI, etc via language 71. "Execute loop iterations in parallel" (http://mathworks.com/help/di
extensions stcomp/parfor.html). mathworks.com. Retrieved 21 October 2016.
37. template metaprogramming using macros (see C++) 72. "Write Constraints" (https://mathworks.com/help/optim/write-cons
38. [6] (https://www.cliki.net/Prolog) [7] (https://franz.com/products/pr traints.html). mathworks.com. Retrieved 21 October 2016.
olog/) [8] (http://www.lispworks.com/products/knowledgeworks.ht 73. "Getting Started with SimEvents" (https://mathworks.com/help/sim
ml) Prolog implemented as a language extension events/getting-started-with-simevents.html). mathworks.com.
39. Common Lisp Object System see Wikipedia article on CLOS, the Retrieved 21 October 2016.
Common Lisp Object System. 74. "Execute loop iterations in parallel" (http://mathworks.com/help/di
40. implemented by the user via a short macro, example of stcomp/parfor.html). mathworks.com. Retrieved 21 October 2016.
implementation (http://blog.vjeux.com/2011/lisp/lisp-chaining-ope 75. "Execute MATLAB expression in text - MATLAB eval" (https://mathw
rator.html) orks.com/help/matlab/ref/eval.html). mathworks.com. Retrieved
41. - Visual programming tool based on Common Lisp (https://github.c 21 October 2016.
om/honix/Lire) 76. "Determine class of object" (https://mathworks.com/help/matlab/r
42. [9] (http://lisa.sourceforge.net/) rule-based programming ef/class.html). mathworks.com. Retrieved 21 October 2016.
extension 77. "Class Metadata" (https://mathworks.com/help/matlab/get-inform
43. [10] (https://common-lisp.net/project/ecl/static/manual/ch31.html) ation-about-classes-and-objects.html). mathworks.com. Retrieved
Archived (https://web.archive.org/web/20180426012208/https://co 21 October 2016.
mmon-lisp.net/project/ecl/static/manual/ch31.html) 2018-04-26 at 78. "Object-Oriented Programming" (https://mathworks.com/help/mat
the Wayback Machine through the Meta Object Protocol lab/object-oriented-programming.html). mathworks.com. Retrieved
44. D Language Feature Table (http://www.digitalmars.com/d/2.0/com 21 October 2016.
parison.html) 79. "Simulink" (https://mathworks.com/help/simulink/).
45. Phobos std.algorithm (http://www.digitalmars.com/d/2.0/phobos/s mathworks.com. Retrieved 21 October 2016.
td_algorithm.html) 80. interpreter based threads (http://perldoc.perl.org/threads.html)
46. D language String Mixins (http://dlang.org/mixin.html) 81. Moose
47. The Little JavaScripter (http://www.crockford.com/javascript/little.h 82. Higher Order Perl (http://hop.perl.plover.com/book/)
tml) demonstrates fundamental commonality with Scheme, a 83. PHP Manual (http://php.net/manual/en/index.php), Chapter 17.
functional language. Functions (http://php.net/manual/en/language.functions.php)
84. PHP Manual (http://php.net/manual/en/index.php), Chapter 19.
Classes and Objects (PHP 5) (http://php.net/manual/en/language.o
op5.php)

5 of 6 5/9/24, 21:14
Comparison of multi-paradigm programming languages - ... https://en.wikipedia.org/wiki/Comparison_of_multi-parad...

85. PHP Manual (http://php.net/manual/en/index.php), Anonymous 103. Lazy Racket (https://docs.racket-lang.org/lazy/)


functions (http://docs.php.net/functions.anonymous) 104. Channels and other mechanisms (https://docs.perl6.org/language/
86. "Parallel Processing and Multiprocessing in Python" (https://wiki.py concurrency)
thon.org/moin/ParallelProcessing). Python Wiki. Retrieved 105. "Class Signature" (https://docs.perl6.org/type/Signature#Type_Con
21 October 2016. straints).
87. "threading — Higher-level threading interface" (https://docs.pytho 106. Feed operator (https://docs.perl6.org/routine/==%3E)
n.org/2/library/threading.html). docs.python.org. Retrieved
107. https://github.com/perl6/doc/issues/1744#issuecomment-
21 October 2016. 360565196 Cro module
88. "python-constraint" (https://pypi.python.org/pypi/python-constrain 108. "Meta-programming: What, why and how" (https://perl6advent.wo
t). pypi.python.org. Retrieved 21 October 2016.
rdpress.com/2011/12/14/meta-programming-what-why-and-how/).
89. "DistributedProgramming" (https://wiki.python.org/moin/Distribut 2011-12-14.
edProgramming). Python Wiki. Retrieved 21 October 2016.
109. https://perl6advent.wordpress.com/2009/12/18/day-18-roles/
90. "Chapter 9. Metaprogramming" (https://web.archive.org/web/2016 Parametrized Roles
1023050954/http://chimera.labs.oreilly.com/books/1230000000393
110. "Meta-object protocol (MOP)" (https://docs.perl6.org/language/mo
/ch09.html). chimera.labs.oreilly.com. Archived from the original (htt
p).
p://chimera.labs.oreilly.com/books/1230000000393/ch09.html) on
23 October 2016. Retrieved 22 October 2016. 111. https://docs.perl6.org/language/classtut Classes and Roles
91. "Metaprogramming" (https://python-3-patterns-idioms-test.readth 112. "The Rust macros guide" (http://doc.rust-lang.org/1.0.0-alpha/boo
edocs.io/en/latest/Metaprogramming.html). readthedocs.io. k/macros.html). Rust. Retrieved 19 January 2015.
Retrieved 22 October 2016. 113. "The Rust compiler plugins guide" (http://doc.rust-lang.org/1.0.0-al
92. "PEP 443 – Single-dispatch generic functions" (https://www.python. pha/book/plugins.html). Rust. Retrieved 19 January 2015.
org/dev/peps/pep-0443/). python.org. Retrieved 22 October 2016. 114. The Rust Reference §6.1.3.1 (http://doc.rust-lang.org/1.0.0-alpha/re
93. "PEP 484 – Type Hints" (https://www.python.org/dev/peps/pep-048 ference.html#generic-functions)
4/#generics). python.org. Retrieved 22 October 2016. 115. An Overview of the Scala Programming Language (http://www.scal
94. "PyDatalog" (https://sites.google.com/site/pydatalog/). Retrieved a-lang.org/sites/default/files/linuxsoft_archives/docu/files/ScalaOv
22 October 2016. erview.pdf)
95. "Light Table" (http://lighttable.com/). 2019-04-08. 116. Scala Language Specification (https://wayback.archive-it.org/all/20
171003043151/http://www.scala-lang.org/sites/default/files/linuxs
96. "Futureverse" (https://www.futureverse.org/). oft_archives/docu/files/ScalaReference.pdf)
97. "future batchtools" (https://future.batchtools.futureverse.org/).
117. "Tcl Programming/Introduction" (https://en.wikibooks.org/wiki/Tcl_
98. "Magrittr: A Forward Pipe Operator for R" (https://cran.r-project.or Programming/Introduction#One_language.2C_many_styles).
g/package=magrittr). cran.r-project.org\access-date=13 July 2017. 17 en.wikibooks.org. Retrieved 22 October 2016.
November 2020.
118. "TCLLIB - Tcl Standard Library: snitfaq" (http://tmml.sourceforge.ne
99. Racket Guide: Concurrency and Synchronization (https://docs.rack t/doc/tcllib/snitfaq.html). sourceforge.net. Retrieved 22 October
et-lang.org/guide/concurrency.html) 2016.
100. The Rosette Guide (https://docs.racket-lang.org/rosette-guide/) 119. Notes for Programming Language Experts (http://www.wolfram.co
101. FrTime: A Language for Reactive Programs (https://docs.racket-lan m/language/for-experts/), Wolfram Language Documentation.
g.org/frtime/) 120. External Programs (https://reference.wolfram.com/language/tutori
102. Racket Guide: Distributed Places (https://docs.racket-lang.org/guid al/ExternalPrograms.html), Wolfram Language Documentation.
e/parallelism.html#%28part._distributed-places%29)

References
▪ Jim Coplien, Multiparadigm Design for C++, Addison-Wesley Professional, 1998.

Retrieved from "https://en.wikipedia.org/w/index.php?title=Comparison_of_multi-paradigm_programming_languages&oldid=1222972880"

6 of 6 5/9/24, 21:14

You might also like