请输入您要查询的百科知识:

 

词条 Comparison of multi-paradigm programming languages
释义

  1. Paradigm summaries

  2. Language overview

  3. See also

  4. Notes

  5. Citations

  6. References

{{short description|Wikimedia list article}}{{Original research|date=August 2009}}{{Programming paradigms|state=collapsed}}

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 behavior)
  • 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 a computation should perform, without specifying detailed state changes c.f. imperative programming (functional and logic programming are major subgroups of declarative programing)
  • 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 templates are used by a compiler 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

List of multi-paradigm programming languages
Language Num­ber of Para­digms Con­cur­rent Con­straints Data­flow De­clar­at­ive Dis­trib­uted Func­tion­al Meta­pro­gram­ming Gen­er­ic Im­per­at­ive Lo­gic Re­flec­tion Ob­ject-ori­ented Pipe­lines Visu­al Rule-based Oth­er para­digms
Ada[2][3][4][5][6] 5 {{yes}}[7] {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}} {{yes}} {{no}} {{no}} {{yes}}[8] {{no}} {{no}} {{no}} {{no}}
ALF 2 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}}
date=March 2007}} 2 {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}}[8] {{no}} {{no}} {{no}} {{no}}
APL 3 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} Array (multi-dimensional)
date=March 2007}} 3 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}}[8] {{no}} {{no}} {{no}} {{no}}
C++ 7 (15) {{yes}}[8][9][10] Library}}[11]Library}}[12][13]Library}}[14][15]Library}}[16][17] {{yes}} {{yes}}[18] {{yes}}[19] {{yes}} Library}}[20][21]Library}}[22] {{yes}}[8] {{yes}}[23] {{no}} Library}}[24] Array (multi-dimensional; using STL)
C# 6 (7) {{yes}} {{no}} Library}}[25] {{no}} {{no}} {{yes}}[26] {{no}} {{yes}} {{yes}} {{no}} {{yes}} {{yes}}[8] {{no}} {{no}} {{no}} reactive[27]
date=March 2007}} 3 {{yes}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}}[8] {{no}} {{no}} {{no}} {{no}}
Claire 2 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}}[8] {{no}} {{no}} {{no}} {{no}}
Clojure 5 {{yes}}[28][29] {{no}} {{no}} {{yes}} {{no}} {{yes}}[30] {{yes}}[31] {{no}} {{no}} Library}}[32] {{no}} {{no}} {{yes}}[33] {{no}} {{no}} Multiple dispatch[34], Agents[35]
Common Lisp 5Library}}[36]Library}}[37]Library}}[38] {{yes}}[39]Library}}[40] {{yes}} {{yes}} {{yes}}[41] {{yes}} Library}}[42] {{yes}} {{yes}} (multiple dispatch, method combinations)[43][8] Library}}[44] {{no}}Library}}[45] Multiple dispatch, meta-OOP system[46], Language is extensible via metaprogramming.
Curl 5 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{yes}}[19] {{yes}} {{no}} {{yes}} {{yes}}[8] {{no}} {{no}} {{no}} {{no}}
Curry 4 {{yes}} {{yes}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}}
D (version 2.0)[47][48] 6 {{yes}}[59] {{no}} {{no}} {{no}} {{no}} {{yes}} {{yes}}[49][19] {{yes}}[19] {{yes}} {{no}} {{no}} {{yes}}[8] {{no}} {{no}} {{no}} {{no}}
date=March 2007}} 3 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{yes}}[50] {{no}} {{no}} {{no}} {{no}}
E 3 {{yes}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}}[50] {{no}} {{no}} {{no}} {{no}}
ECMAScript[51][52] (ActionScript, E4X, JavaScript, JScript) 4 (5)partial (promises, native extensions)}}[53] {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}} {{no}} {{yes}} {{yes}}[54] {{no}} {{no}} {{no}} reactive[55]
Embarcadero Delphi 3 {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}}[19] {{yes}} {{no}} {{no}} {{yes}}[50] {{no}} {{no}} {{no}} {{no}}
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}}
Elm 6 {{yes}} {{no}} {{yes}} {{yes}} {{no}} {{yes}} {{no}} {{yes}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} reactive
F# 7 (8) {{yes}}[56] {{no}} Library}}[57] {{yes}} {{no}} {{yes}} {{no}} {{yes}} {{yes}} {{no}} {{yes}} {{yes}}[50] {{no}} {{no}} {{no}} reactive[58]
Fortran 4 (5) {{yes}} {{no}} {{no}} {{no}} {{no}} {{yes}}[59] {{no}} {{yes}}[60] {{no}} {{no}} {{no}} {{yes}}[50] {{no}} {{no}} {{no}} Array (multi-dimensional)
Go 4 {{yes}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{yes}} {{no}} {{yes}} {{no}} {{no}} {{no}}
Haskell 8 (15) {{yes}}Library}}[61]Library}}[62] {{yes}}Library}}[63] {{yes}} (lazy) {{yes}}[64] {{yes}} {{yes}} Library}}[65] {{no}} Immutable}} {{yes}} {{yes}} Library}}[66]literate, reactive, dependent types (partial)}}
Io 4 {{yes}}[56] {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}}[54] {{no}} {{no}} {{no}} {{no}}
date=March 2007}} 3 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}}[50] {{no}} {{no}} {{no}} {{no}}
Java 6 {{yes}} Library}}[67]Library}}[68] {{no}} {{no}} {{yes}} {{no}} {{yes}} {{yes}} {{no}} {{yes}} {{yes}}[50] {{no}} {{no}} {{no}} {{no}}
Julia 9 (17) {{yes}} Library}}[69]Library}}[70][71]Library}}[72] {{yes}} {{yes}} (eager) {{yes}} {{yes}} {{yes}} Library}}[73] {{yes}} {{yes}} (multiple dispatch, not traditional single) {{yes}} {{no}} Library}}[74][75] Multiple dispatch,
Array (multi-dimensional); optionally lazy[76] 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}}
Lava 2 {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}}[50] {{no}} {{yes}} {{no}} {{no}}
LispWorks (version 6.0 with support for symmetric multi-processing, rules, logic (Prolog), CORBA) 9 {{yes}} {{no}} {{no}} {{no}} {{yes}} {{yes}} {{yes}} {{no}} {{yes}} {{yes}} {{yes}} {{yes}}[50] {{no}} {{no}} {{yes}} {{no}}
date=March 2007}} 3 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}}[54] {{no}} {{no}} {{no}} {{no}}
MATLAB 6 (10)Toolbox}}[77]Toolbox}}[78] {{yes}}[79] {{no}}Toolbox}}[80] {{no}} {{yes}}[81] {{yes}}[82] {{no}} {{no}} {{yes}}[83] {{yes}}[84] {{no}} {{yes}}[85] {{no}} Array (multi-dimensional)
Nemerle 7 {{yes}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{yes}} {{yes}} {{yes}} {{no}} {{yes}} {{yes}}[50] {{no}} {{no}} {{no}} {{no}}
Object Pascal 4 {{yes}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}}[50] {{no}} {{no}} {{no}} {{no}}
OCaml 4 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{yes}} {{yes}} {{no}} {{no}} {{yes}}[50] {{no}} {{no}} {{no}} {{no}}
Oz 11 {{yes}} {{yes}} {{yes}} {{yes}} {{yes}} {{yes}} {{no}} {{no}} {{yes}} {{yes}} {{no}} {{yes}}[50] {{yes}} {{no}} {{yes}} {{no}}
date=March 2007}} 8 (9) {{yes}}[86] Library}}[87] {{yes}}[88] {{no}} {{no}} {{yes}} {{yes}} {{no}} {{yes}} {{no}} {{yes}}[50] {{yes}}[50] {{yes}} {{no}} {{no}} {{no}}
Perl6 10 {{yes}}[89] {{yes}}[90] {{yes}}[91] {{no}}Library}}[92] {{yes}} {{yes}}[93] {{yes}}[94] {{yes}} {{no}} {{yes}}[95] {{yes}}[96] {{yes}} {{no}} {{no}} Multiple dispatch, lazy lists, reactive.
PHP[97][98][99] 4 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}} {{no}} {{yes}} {{yes}}[50] {{no}} {{no}} {{no}} {{no}}
Poplog 3 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}} {{yes}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}}
Prograph 3 {{no}} {{no}} {{yes}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}}[50] {{no}} {{yes}} {{no}} {{no}}
Python 5 (10)Library}}[100][101]Library}}[102] {{no}} {{no}}Library}}[103] {{partial}} {{yes}}[104][105] {{yes}}[106][107] {{yes}} Library}}[108] {{yes}} {{yes}}[50] {{no}} {{no}} {{no}} structured
R 4 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}} {{no}} {{yes}} {{yes}} {{yes}}[109] {{no}} {{no}} Array (multi-dimensional)
Racket 6 {{yes}}[110] {{no}} {{no}} {{no}} {{no}} {{yes}} {{yes}} {{no}} {{yes}} {{yes}} {{yes}} {{yes}} {{no}} {{no}} {{no}} {{no}}
ROOP 3 {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{yes}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}}
Ruby 5 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{yes}} {{no}} {{yes}} {{no}} {{yes}} {{yes}}[50] {{no}} {{no}} {{no}} {{no}}
Rust (version 1.0.0-alpha) 6 {{yes}}[56] {{no}} {{no}} {{no}} {{no}} {{yes}} {{yes}}[111][112] {{yes}}[113] {{yes}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{no}} linear, affline, and ownership types
date=March 2007}} 2 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}}[50] {{no}} {{no}} {{no}} {{no}}
Scala[114][115] 9 {{yes}}[116] {{no}} {{yes}}[117] {{yes}} {{no}} {{yes}} {{yes}} {{yes}} {{yes}} {{no}} {{yes}} {{yes}}[50] {{no}} {{no}} {{no}} {{no}}
date=March 2007}} 2 {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}}[50] {{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}}
Swift 7 {{yes}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{yes}} {{yes}} {{yes}} {{no}} {{yes}} {{yes}}[50] {{no}} {{no}} {{no}} block-structured
date=March 2007}} 3 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}}[118] {{no}} {{no}} {{yes}} {{no}} {{no}} {{yes}}[54][119] {{no}} {{no}} {{no}} {{no}}
Visual Basic .NET 6 (7) {{yes}} {{no}} Library}}[25] {{no}} {{no}} {{yes}} {{no}} {{yes}} {{yes}} {{no}} {{yes}} {{yes}}[50] {{no}} {{no}} {{no}} reactive[27]
Windows PowerShell 6 {{no}} {{no}} {{no}} {{no}} {{no}} {{yes}} {{no}} {{yes}} {{yes}} {{no}} {{yes}} {{yes}}[50] {{yes}} {{no}} {{no}} {{no}}
Wolfram Language & Mathematica 13[120] (14) {{yes}} {{yes}} {{yes}} {{yes}} {{yes}} {{yes}} {{yes}} {{yes}} {{yes}} {{yes}} {{yes}} {{yes}} {{yes}}[121] {{no}} {{yes}} Knowledge Based

See also

  • Programming paradigm
  • Categorical list of programming languages
  • Domain-specific programming language
  • Domain-specific multimodeling

Notes

1. ^{{cite book |chapter-url=http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=381508 |chapter=Diagrammatic-graphical programming languages and DoD-STD-2167A |last=Bragg |first=S.D. |last2=Driskill |first2=C.G. |date=20–22 September 1994 |work=IEEEXplore |publisher=IEEE|doi=10.1109/AUTEST.1994.381508 |title=Proceedings of AUTOTESTCON '94 |pages=211–220 |isbn=978-0-7803-1910-3 }}
2. ^Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 9: Tasks and Synchronization
3. ^Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3 Annex E: Distributed Systems
4. ^Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 12: Generic Units
5. ^Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 6: Subprograms
6. ^Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, 3.9 Tagged Types and Type Extensions
7. ^rendezvous and monitor-like based
8. ^Thread support
9. ^Atomics support
10. ^[https://cppandbeyond.wordpress.com/2011/04/11/session-announcement-the-c0x-memory-model-and-why-you-care Memory model]
11. ^Gecode
12. ^SystemC
13. ^Boost.Iostreams
14. ^Boolinq
15. ^AraRat
16. ^OpenMPI
17. ^Boost.MPI
18. ^Boost.MPL
19. ^Template metaprogramming
20. ^LC++
21. ^Castor {{webarchive|url=https://web.archive.org/web/20130125024854/http://www.mpprogramming.com/Cpp/Default.aspx |date=2013-01-25 }}
22. ^[https://bytemaster.github.com/boost_reflect/index.html Reflect Library]
23. ^N3534
24. ^Boost.Spirit
25. ^using TPL Dataflow
26. ^only lambda support (lazy functional programming)
27. ^using Reactive Extensions (Rx)
28. ^[https://clojure.org/about/concurrent_programming Clojure - Concurrent Programming]
29. ^[https://github.com/clojure/core.async Clojure - core.async]
30. ^[https://clojure.org/about/functional_programming Clojure - Functional Programming]
31. ^[https://clojure.org/reference/macros Clojure - Macros]
32. ^[https://github.com/clojure/core.logic/ Clojure - core.logic]
33. ^[https://clojure.org/guides/threading_macros Clojure - Threading Macros Guide]
34. ^[https://clojure.org/reference/multimethods Multimethods and Hierarchies]
35. ^[https://clojure.org/reference/agents Agents and Asynchronous Actions]
36. ^[https://www.cliki.net/Concurrency] many concurrency paradigms implemented as language extensions
37. ^[https://www.cliki.net/screamer] constraint programming inside CL through extensions
38. ^[https://www.cliki.net/Cells] dataflow extension
39. ^  by creating DSLs using the built-in metaprogramming; also see note on functional, constraint and logic paradigms, which are part of declarative
40. ^[https://www.cliki.net/Distributed] MPI, etc via language extensions
41. ^template metaprogramming using macros (see C++)
42. ^[https://www.cliki.net/Prolog] [https://franz.com/products/prolog/]   Prolog implemented as a language extension
43. ^Common Lisp Object System see Wikipedia article on CLOS, the Common Lisp Object System.
44. ^implemented by the user via a short macro, example of implementation:  
45. ^  rule-based programming extension
46. ^[https://common-lisp.net/project/ecl/static/manual/ch31.html] through the Meta Object Protocol
47. ^D Language Feature Table
48. ^Phobos std.algorithm
49. ^D language String Mixins
50. ^10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Class-based
51. ^The Little JavaScripter demonstrates fundamental commonality with Scheme, a functional language.
52. ^Object Oriented Programming in JavaScript gives an overview of object-oriented programming techniques in JavaScript.
53. ^using Node.js' [https://nodejs.org/api/cluster.html cluster] module or [https://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options child_process.fork] method, [https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers web workers] in the browser, etc.
54. ^Prototype-based
55. ^using Reactive Extensions (RxJS)
56. ^actor programming
57. ^using TPL Dataflow
58. ^using Reactive Extensions (Rx)
59. ^purely functional
60. ^parameterized classes
61. ^[https://hackage.haskell.org/package/hswip Prolog embedding]
62. ^{{Cite web | url=https://wiki.haskell.org/Functional_Reactive_Programming | title=Functional Reactive Programming - HaskellWiki}}
63. ^[https://haskell-distributed.github.io/ Cloud Haskell]
64. ^{{Cite web | url=https://wiki.haskell.org/Template_Haskell | title=Template Haskell - HaskellWiki}}
65. ^{{Cite web | url=https://hackage.haskell.org/package/logict | title=Logict: A backtracking logic-programming monad}}
66. ^[https://web.engr.oregonstate.edu/~erwig/HaskellRules/HaskellRules_June06.pdf]
67. ^https://jcp.org/en/jsr/detail?id=331 JSR 331: Constraint Programming API
68. ^ https://github.com/GoogleCloudPlatform/DataflowJavaSDK Google Cloud Platform Dataflow SDK
69. ^https://jump.readthedocs.io/en/latest/
70. ^{{Cite web | url=https://github.com/MikeInnes/DataFlow.jl | title=Contribute to MikeInnes/DataFlow.jl development by creating an account on GitHub| date=2019-01-15}}
71. ^{{Cite web | url=https://github.com/JuliaGizmos/Reactive.jl | title=Reactive programming primitives for Julia. Contribute to JuliaGizmos/Reactive.jl development by creating an account on GitHub| date=2018-12-28}}
72. ^https://github.com/davidanthoff/Query.jl Query almost anything in julia
73. ^https://github.com/lilinjn/LilKanren.jl A collection of Kanren implementations in Julia
74. ^{{Cite web | url=https://github.com/abeschneider/PEGParser.jl | title=PEG Parser for Julia. Contribute to abeschneider/PEGParser.jl development by creating an account on GitHub| date=2018-12-03}}
75. ^{{Cite web | url=https://github.com/gitfoxi/Parsimonious.jl | title=A PEG parser generator for Julia. Contribute to gitfoxi/Parsimonious.jl development by creating an account on GitHub| date=2017-08-03}}
76. ^Lazy https://github.com/MikeInnes/Lazy.jl
77. ^{{cite web|title=Execute loop iterations in parallel|url=http://mathworks.com/help/distcomp/parfor.html|website=mathworks.com|accessdate=21 October 2016}}
78. ^{{cite web|title=Write Constraints|url=https://mathworks.com/help/optim/write-constraints.html|website=mathworks.com|accessdate=21 October 2016}}
79. ^{{cite web|title=Getting Started with SimEvents|url=https://mathworks.com/help/simevents/getting-started-with-simevents.html|website=mathworks.com|accessdate=21 October 2016}}
80. ^{{cite web|title=Execute loop iterations in parallel|url=http://mathworks.com/help/distcomp/parfor.html|website=mathworks.com|accessdate=21 October 2016}}
81. ^{{cite web|title=Execute MATLAB expression in text - MATLAB eval|url=https://mathworks.com/help/matlab/ref/eval.html|website=mathworks.com|accessdate=21 October 2016}}
82. ^{{cite web|title=Determine class of object|url=https://mathworks.com/help/matlab/ref/class.html|website=mathworks.com|accessdate=21 October 2016}}
83. ^{{cite web|title=Class Metadata|url=https://mathworks.com/help/matlab/get-information-about-classes-and-objects.html|website=mathworks.com|accessdate=21 October 2016}}
84. ^{{cite web|title=Object-Oriented Programming|url=https://mathworks.com/help/matlab/object-oriented-programming.html|website=mathworks.com|accessdate=21 October 2016}}
85. ^{{cite web|title=Simulink|url=https://mathworks.com/help/simulink/index.html|website=mathworks.com|accessdate=21 October 2016}}
86. ^interpreter based threads
87. ^Moose
88. ^Higher Order Perl
89. ^[https://docs.perl6.org/language/concurrency Channels and other mechanisms]
90. ^{{Cite web | url=https://docs.perl6.org/type/Signature#Type_Constraints | title=Class Signature}}
91. ^[https://docs.perl6.org/routine/==%3E Feed operator]
92. ^https://github.com/perl6/doc/issues/1744#issuecomment-360565196 Cro module
93. ^{{Cite web | url=https://perl6advent.wordpress.com/2011/12/14/meta-programming-what-why-and-how/ | title=Meta-programming: What, why and how| date=2011-12-14}}
94. ^https://perl6advent.wordpress.com/2009/12/18/day-18-roles/ Parametrized Roles
95. ^{{Cite web | url=https://docs.perl6.org/language/mop | title=Meta-object protocol (MOP)}}
96. ^https://docs.perl6.org/language/classtut Classes and Roles
97. ^PHP Manual, Chapter 17. Functions
98. ^PHP Manual, Chapter 19. Classes and Objects (PHP 5)
99. ^PHP Manual, Anonymous functions
100. ^{{cite web|title=Parallel Processing and Multiprocessing in Python|url=https://wiki.python.org/moin/ParallelProcessing|website=wiki.python.org|accessdate=21 October 2016}}
101. ^{{cite web|title=threading — Higher-level threading interface|url=https://docs.python.org/2/library/threading.html|website=docs.python.org|accessdate=21 October 2016}}
102. ^{{cite web|title=python-constraint|url=https://pypi.python.org/pypi/python-constraint|website=pypi.python.org|accessdate=21 October 2016}}
103. ^{{cite web|title=DistributedProgramming|url=https://wiki.python.org/moin/DistributedProgramming|website=wiki.python.org|accessdate=21 October 2016}}
104. ^{{cite web|title=Chapter 9. Metaprogramming|url=http://chimera.labs.oreilly.com/books/1230000000393/ch09.html|website=chimera.labs.oreilly.com|accessdate=22 October 2016}}
105. ^{{cite web|title=Metaprogramming|url=https://python-3-patterns-idioms-test.readthedocs.io/en/latest/Metaprogramming.html|website=readthedocs.io|accessdate=22 October 2016}}
106. ^{{cite web|title=PEP 443 -- Single-dispatch generic functions|url=https://www.python.org/dev/peps/pep-0443/|website=python.org|accessdate=22 October 2016}}
107. ^{{cite web|title=PEP 484 -- Type Hints|url=https://www.python.org/dev/peps/pep-0484/#generics|website=python.org|accessdate=22 October 2016}}
108. ^{{cite web |url=https://sites.google.com/site/pydatalog/ |title=PyDatalog |accessdate=22 October 2016}}
109. ^{{cite web|title= Magrittr: A Forward Pipe Operator for R|url=https://cran.r-project.org/package=magrittr|website=cran.r-project.org\\accessdate=13 July 2017}}
110. ^[https://docs.racket-lang.org/guide/concurrency.html Racket Guide: Concurrency and Synchronization]
111. ^{{cite web|title=The Rust macros guide|url=http://doc.rust-lang.org/1.0.0-alpha/book/macros.html|website=Rust|accessdate=19 January 2015|ref=rust-macros}}
112. ^{{cite web|title=The Rust compiler plugins guide|url=http://doc.rust-lang.org/1.0.0-alpha/book/plugins.html|website=Rust|accessdate=19 January 2015|ref=rust-plugins}}
113. ^The Rust Reference §6.1.3.1
114. ^An Overview of the Scala Programming Language
115. ^Scala Language Specification
116. ^actor programming
117. ^Akka {{webarchive|url=https://web.archive.org/web/20130119045517/http://doc.akka.io/docs/akka/snapshot/scala/dataflow.html |date=2013-01-19 }}
118. ^{{cite web|title=Tcl Programming/Introduction|url=https://en.wikibooks.org/wiki/Tcl_Programming/Introduction#One_language.2C_many_styles|website=en.wikibooks.org|accessdate=22 October 2016}}
119. ^{{cite web|title=TCLLIB - Tcl Standard Library: snitfaq|url=http://tmml.sourceforge.net/doc/tcllib/snitfaq.html|website=sourceforge.net|accessdate=22 October 2016}}
120. ^Notes for Programming Language Experts, Wolfram Language Documentation.
121. ^[https://reference.wolfram.com/language/tutorial/ExternalPrograms.html External Programs], Wolfram Language Documentation.

Citations

{{Reflist|30em}}

References

  • Jim Coplien, Multiparadigm Design for C++, Addison-Wesley Professional, 1998.
{{Programming language}}{{DEFAULTSORT:List of multi-paradigm programming languages}}

2 : Programming paradigms|Programming language comparisons

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/22 14:20:22