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 programming1
Language overview
List of multi-paradigm programming languagesLanguage | Paradigm count | Concurrent | Constraints | Dataflow | Declarative | Distributed | Functional | Metaprogramming | Generic | Imperative | Logic | Reflection | Object-oriented | Pipelines | Visual | Rule-based | Other |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ada23456 | 5 | Yes7 | — | — | — | Yes | — | — | Yes | Yes | — | — | Yes8 | — | — | — | — |
ALF | 2 | — | — | — | — | — | Yes | — | — | — | Yes | — | — | — | — | — | — |
AmigaE | 2 | — | — | — | — | — | — | — | — | Yes | — | — | Yes9 | — | — | — | — |
APL | 3 | — | — | — | — | — | Yes | — | — | Yes | — | — | — | — | — | — | Array (multi-dimensional) |
BETA | 3 | — | — | — | — | — | Yes | — | — | Yes | — | — | Yes10 | — | — | — | — |
C++ | 7 (15) | Yes111213 | Library14 | Library1516 | Library1718 | Library1920 | Yes | Yes21 | Yes22 | Yes | Library2324 | Library25 | Yes26 | Yes27 | — | Library28 | Array (multi-dimensional; using STL) |
C# | 6 (7) | Yes | — | Library29 | — | — | Yes30 | — | Yes | Yes | — | Yes | Yes31 | — | — | — | Reactive32 |
ChucK | 3 | Yes | — | — | — | — | — | — | — | Yes | — | — | Yes33 | — | — | — | — |
Claire | 2 | — | — | — | — | — | Yes | — | — | — | — | — | Yes34 | — | — | — | — |
Clojure | 5 | Yes3536 | — | — | Yes | — | Yes37 | Yes38 | — | — | Library39 | — | — | Yes40 | Editor41 | — | Multiple dispatch,42 Agents43 |
Common Lisp | 7 (14) | Library44 | Library45 | Library46 | Yes47 | Library48 | Yes | Yes | Yes49 | Yes | Library50 | Yes | Yes515253 | Library54 | Library55 | Library56 | Multiple dispatch, meta-OOP system,57 Language is extensible via metaprogramming. |
Curl | 5 | — | — | — | — | — | Yes | — | Yes58 | Yes | — | Yes | Yes59 | — | — | — | — |
Curry | 4 | Yes | Yes | — | — | — | Yes | — | — | — | Yes | — | — | — | — | — | — |
D (version 2.0)6061 | 7 | Yes62 | — | — | — | — | Yes | Yes6364 | Yes65 | Yes | — | Yes | Yes66 | — | — | — | — |
Delphi | 3 | — | — | — | — | — | — | — | Yes67 | Yes | — | — | Yes68 | — | — | — | — |
Dylan | 3 | — | — | — | — | — | Yes | — | — | — | — | Yes | Yes69 | — | — | — | — |
E | 3 | Yes | — | — | — | Yes | — | — | — | — | — | — | Yes70 | — | — | — | — |
ECMAScript7172 (ActionScript, E4X, JavaScript, JScript) | 4 (5) | Partial7374 | — | — | Library7576 | — | Yes | — | — | Yes | — | Yes | Yes77 | Library7879 | Editor80 | — | Reactive,8182 event driven8384 |
Erlang | 3 | Yes | — | — | Yes | Yes | Yes | — | — | — | — | — | — | Yes | — | — | — |
Elixir | 4 | Yes | — | — | — | Yes | Yes | Yes | — | — | — | — | — | Yes | — | — | — |
Elm | 6 | Yes | — | Yes | Yes | — | Yes (pure)85 | — | Yes | — | — | — | — | Yes | — | — | Reactive |
F# | 7 (8) | Yes86 | — | Library87 | Yes | — | Yes | — | Yes | Yes | — | Yes | Yes88 | — | — | — | Reactive89 |
Fortran | 4 (5) | Yes | — | — | — | — | Yes90 | — | Yes91 | — | — | — | Yes92 | — | — | — | Array (multi-dimensional) |
Go | 4 | Yes | — | — | — | — | — | — | — | Yes | — | Yes | — | Yes | — | — | — |
Haskell | 8 (15) | Yes | Library93 | Library94 | Yes | Library95 | Yes (lazy) (pure)96 | Yes97 | Yes | Yes | Library98 | — | Partial99 | Yes | Yes | Library100 | Literate, reactive, dependent types (partial) |
Io | 4 | Yes101 | — | — | — | — | Yes | — | — | Yes | — | — | Yes102 | — | — | — | — |
J | 3 | — | — | — | — | — | Yes | — | — | Yes | — | — | Yes103 | — | — | — | — |
Java | 6 | Yes | Library104 | Library105 | — | — | Yes | — | Yes | Yes | — | Yes | Yes106 | — | — | — | — |
Julia | 9 (17) | Yes | Library107 | Library108109 | Library110 | Yes | Yes (eager) | Yes | Yes | Yes | Library111 | Yes | Partial112 | Yes | — | Library113114 | Multiple dispatch,Array (multi-dimensional); optionally lazy115 and reactive (with libraries) |
Kotlin | 8 | Yes | — | — | — | — | Yes | Yes | Yes | Yes | — | Yes | Yes | Yes | — | — | — |
LabVIEW | 4 | Yes | — | Yes | — | — | — | — | — | — | — | — | Yes | — | Yes | — | — |
Lava | 2 | — | — | — | — | — | — | — | — | — | — | — | Yes116 | — | Yes | — | — |
LispWorks (version 6.0 with support for symmetric multi-processing, rules, logic (Prolog), CORBA) | 9 | Yes | — | — | — | Yes | Yes | Yes | — | Yes | Yes | Yes | Yes117 | — | — | Yes | — |
Lua | 3 | — | — | — | — | — | Yes | — | — | Yes | — | — | Yes118 | — | — | — | — |
MATLAB | 6 (10) | Toolbox119 | Toolbox120 | Yes121 | — | Toolbox122 | — | Yes123 | Yes124 | — | — | Yes125 | Yes126 | — | Yes127 | — | Array (multi-dimensional) |
Nemerle | 7 | Yes | — | — | — | — | Yes | Yes | Yes | Yes | — | Yes | Yes128 | — | — | — | — |
Object Pascal | 4 | Yes | — | — | — | — | Yes | — | — | Yes | — | — | Yes129 | — | — | — | — |
OCaml | 4 | — | — | — | — | — | Yes | — | Yes | Yes | — | — | Yes130 | — | — | — | — |
Oz | 11 | Yes | Yes | Yes | Yes | Yes | Yes | — | — | Yes | Yes | — | Yes131 | Yes | — | Yes | — |
Perl | 8 (9) | Yes132 | — | Yes133 | — | — | Yes | Yes | — | Yes | — | Yes134 | Yes135 | Yes | — | — | — |
PHP136137138 | 4 | — | — | — | — | — | Yes | — | — | Yes | — | Yes | Yes139 | — | — | — | — |
Poplog | 3 | — | — | — | — | — | Yes | — | — | Yes | Yes | — | — | — | — | — | — |
Prograph | 3 | — | — | Yes | — | — | — | — | — | — | — | — | Yes140 | — | Yes | — | — |
Python | 5 (10) | Library141142 | Library143 | — | — | Library144 | Yes | Yes145146 | Yes147148 | Yes | Library149 | Yes | Yes150 | — | Editor151 | — | Structured |
R | 4 (6) | Library152 | — | — | — | Library153 | Yes | — | — | Yes | — | Yes | Yes | Yes154 | — | — | Array (multi-dimensional) |
Racket | 10 | Yes155 | Yes156 | Yes157 | — | Yes158 | Yes | Yes | — | Yes | Yes | Yes | Yes | — | — | — | Lazy159 |
Raku | 10 | Yes160 | Library161 | Yes162 | — | Library163 | Yes | Yes164 | Yes165 | Yes | — | Yes166 | Yes167 | Yes | — | — | Multiple dispatch, lazy lists, reactive. |
ROOP | 3 | — | — | — | — | — | — | — | — | Yes | Yes | — | — | — | — | Yes | — |
Ruby | 5 | — | — | — | — | — | Yes | Yes | — | Yes | — | Yes | Yes168 | — | — | — | — |
Rust (version 1.0.0-alpha) | 6 | Yes169 | — | — | — | — | Yes | Yes170171 | Yes172 | Yes | — | — | Yes | — | — | — | Linear, affline, and ownership types |
Sather | 2 | — | — | — | — | — | Yes | — | — | — | — | — | Yes173 | — | — | — | — |
Scala174175 | 9 | Yes176 | — | Yes177 | Yes | — | Yes | Yes | Yes | Yes | — | Yes | Yes178 | — | — | — | — |
Simula | 2 | — | — | — | — | — | — | — | — | Yes | — | — | Yes179 | — | — | — | — |
SISAL | 3 | Yes | — | Yes | — | — | Yes | — | — | — | — | — | — | — | — | — | — |
Spreadsheets | 2 | — | — | — | — | — | Yes | — | — | — | — | — | — | — | Yes | — | — |
Swift | 7 | Yes | — | — | — | — | Yes | Yes | Yes | Yes | — | Yes | Yes180 | — | — | — | Block-structured |
Tcl with Snit extension | 3 | — | — | — | — | — | Yes181 | — | — | Yes | — | — | Yes182183 | — | — | — | — |
Visual Basic .NET | 6 (7) | Yes | — | Library184 | — | — | Yes | — | Yes | Yes | — | Yes | Yes185 | — | — | — | Reactive186 |
Windows PowerShell | 6 | — | — | — | — | — | Yes | — | Yes | Yes | — | Yes | Yes187 | Yes | — | — | — |
Wolfram Language & Mathematica | 13188 (14) | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes189 | — | Yes | Knowledge Based |
See also
- Programming paradigm
- List of programming languages by type
- Domain-specific language
- Domain-specific multimodeling
Notes
Citations
- Jim Coplien, Multiparadigm Design for C++, Addison-Wesley Professional, 1998.
References
Bragg, S.D.; Driskill, C.G. (20–22 September 1994). "Diagrammatic-graphical programming languages and DoD-STD-2167A". Proceedings of AUTOTESTCON '94 (IEEEXplore). Institute of Electrical and Electronics Engineers (IEEE). pp. 211–220. doi:10.1109/AUTEST.1994.381508. ISBN 978-0-7803-1910-3. S2CID 62509261. 978-0-7803-1910-3 ↩
Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 9: Tasks and Synchronization http://www.adaic.org/standards/05rm/html/RM-TTL.html ↩
Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3 Annex E: Distributed Systems http://www.adaic.org/standards/05rm/html/RM-TTL.html ↩
Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 12: Generic Units http://www.adaic.org/standards/05rm/html/RM-TTL.html ↩
Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 6: Subprograms http://www.adaic.org/standards/05rm/html/RM-TTL.html ↩
Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, 3.9 Tagged Types and Type Extensions http://www.adaic.org/standards/05rm/html/RM-TTL.html ↩
rendezvous and monitor-like based ↩
class-based ↩
class-based ↩
class-based ↩
Thread support http://en.cppreference.com/w/cpp/thread ↩
Atomics support http://en.cppreference.com/w/cpp/atomic ↩
Memory model https://cppandbeyond.wordpress.com/2011/04/11/session-announcement-the-c0x-memory-model-and-why-you-care ↩
Gecode http://www.gecode.org/ ↩
SystemC http://www.accellera.org/downloads/standards/systemc/about_systemc/ ↩
Boost.Iostreams http://www.boost.org/libs/iostreams/ ↩
Boolinq https://code.google.com/p/boolinq/ ↩
"AraRat" (PDF). Archived from the original (PDF) on 2019-08-19. Retrieved 2019-09-15. https://web.archive.org/web/20190819105358/http://www.cs.technion.ac.il/~lkeren/scp.pdf ↩
OpenMPI http://www.open-mpi.org/ ↩
Boost.MPI http://www.boost.org/libs/mpi/ ↩
Boost.MPL http://www.boost.org/libs/mpl/ ↩
template metaprogramming ↩
Castor Archived 2013-01-25 at the Wayback Machine http://www.mpprogramming.com/Cpp/Default.aspx ↩
Reflect Library https://bytemaster.github.com/boost_reflect/ ↩
class-based ↩
N3534 http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2013/n3534.html ↩
Boost.Spirit http://www.boost.org/libs/spirit/ ↩
using TPL Dataflow http://msdn.microsoft.com/en-us/devlabs/gg585582.aspx ↩
only lambda support (lazy functional programming) /wiki/Lambda_calculus ↩
class-based ↩
using Reactive Extensions (Rx) http://msdn.microsoft.com/en-us/data/gg577609.aspx ↩
class-based ↩
class-based ↩
Clojure - Concurrent Programming https://clojure.org/about/concurrent_programming ↩
Clojure - core.async https://github.com/clojure/core.async ↩
Clojure - Functional Programming https://clojure.org/about/functional_programming ↩
Clojure - Macros https://clojure.org/reference/macros ↩
Clojure - core.logic https://github.com/clojure/core.logic/ ↩
Clojure - Threading Macros Guide https://clojure.org/guides/threading_macros ↩
"Light Table". 2019-04-08. http://lighttable.com/ ↩
Multimethods and Hierarchies https://clojure.org/reference/multimethods ↩
Agents and Asynchronous Actions https://clojure.org/reference/agents ↩
"concurrency". CLiki. https://www.cliki.net/Concurrency ↩
[1] constraint programming inside CL through extensions https://www.cliki.net/screamer ↩
[2] dataflow extension https://www.cliki.net/Cells ↩
[3] by creating DSLs using the built-in metaprogramming; also see note on functional, constraint and logic paradigms, which are part of declarative http://www.gigamonkeys.com/book/practical-an-html-generation-library-the-interpreter.html ↩
[4] MPI, etc via language extensions https://www.cliki.net/Distributed ↩
template metaprogramming using macros (see C++) ↩
[5] [6] [7] Prolog implemented as a language extension https://www.cliki.net/Prolog ↩
multiple dispatch, method combinations ↩
class-based ↩
Common Lisp Object System see Wikipedia article on CLOS, the Common Lisp Object System. /wiki/Common_Lisp_Object_System ↩
implemented by the user via a short macro, example of implementation http://blog.vjeux.com/2011/lisp/lisp-chaining-operator.html ↩
- Visual programming tool based on Common Lisp https://github.com/honix/Lire ↩
[8] rule-based programming extension http://lisa.sourceforge.net/ ↩
[9] Archived 2018-04-26 at the Wayback Machine through the Meta Object Protocol https://common-lisp.net/project/ecl/static/manual/ch31.html ↩
template metaprogramming ↩
class-based ↩
D Language Feature Table http://www.digitalmars.com/d/2.0/comparison.html ↩
Phobos std.algorithm http://www.digitalmars.com/d/2.0/phobos/std_algorithm.html ↩
actor programming ↩
D language String Mixins http://dlang.org/mixin.html ↩
template metaprogramming ↩
template metaprogramming ↩
class-based ↩
template metaprogramming ↩
class-based ↩
class-based ↩
class-based ↩
The Little JavaScripter demonstrates fundamental commonality with Scheme, a functional language. http://www.crockford.com/javascript/little.html ↩
Object-Oriented Programming in JavaScript Archived 2019-02-10 at the Wayback Machine gives an overview of object-oriented programming techniques in JavaScript. http://mckoss.com/jscript/object.htm ↩
promises, native extensions ↩
using Node.js' cluster module or child_process.fork method, web workers in the browser, etc. /wiki/Node.js ↩
"React – A JavaScript library for building user interfaces". 2019-04-08. https://reactjs.org/ ↩
"TNG-Hooks". GitHub. 2019-04-08. https://github.com/getify/tng-hooks ↩
Prototype-based ↩
"Lodash documentation". 2019-04-08. https://lodash.com/docs/4.17.11#flow ↩
"mori". 2019-04-08. https://swannodette.github.io/mori/#pipeline ↩
"Light Table". 2019-04-08. http://lighttable.com/ ↩
using Reactive Extensions (RxJS) http://reactivex.io/rxjs/ ↩
"TNG-Hooks". GitHub. 2019-04-08. https://github.com/getify/tng-hooks ↩
in Node.js via their events module https://nodejs.org/api/events.html ↩
in browsers via their native EventTarget API https://developer.mozilla.org/en-US/docs/Web/API/EventTarget ↩
purely functional ↩
actor programming ↩
using TPL Dataflow http://msdn.microsoft.com/en-us/devlabs/gg585582.aspx ↩
class-based ↩
using Reactive Extensions (Rx) http://msdn.microsoft.com/en-us/data/gg577609.aspx ↩
purely functional ↩
parameterized classes ↩
class-based ↩
"Prolog embedding". Haskell.org. https://hackage.haskell.org/package/hswip ↩
"Functional Reactive Programming". HaskellWiki. https://wiki.haskell.org/Functional_Reactive_Programming ↩
Cloud Haskell https://haskell-distributed.github.io/ ↩
purely functional ↩
"Template Haskell". HaskellWiki. https://wiki.haskell.org/Template_Haskell ↩
"Logict: A backtracking logic-programming monad". Haskell.org. https://hackage.haskell.org/package/logict ↩
immutable ↩
Kollmansberger, Steve; Erwig, Martin (30 May 2006). "Haskell Rules: Embedding Rule Systems in Haskell" (PDF). Oregon State University. https://web.engr.oregonstate.edu/~erwig/HaskellRules/HaskellRules_June06.pdf ↩
actor programming ↩
Prototype-based ↩
class-based ↩
https://jcp.org/en/jsr/detail?id=331 JSR 331: Constraint Programming API https://jcp.org/en/jsr/detail?id=331 ↩
https://github.com/GoogleCloudPlatform/DataflowJavaSDK Google Cloud Platform Dataflow SDK https://github.com/GoogleCloudPlatform/DataflowJavaSDK ↩
class-based ↩
"JuliaOpt/JuMP.jl". GitHub. JuliaOpt. 11 February 2020. Retrieved 12 February 2020. https://github.com/JuliaOpt/JuMP.jl ↩
"GitHub - MikeInnes/DataFlow.jl". GitHub. 2019-01-15. https://github.com/MikeInnes/DataFlow.jl ↩
"GitHub - JuliaGizmos/Reactive.jl: Reactive programming primitives for Julia". GitHub. 2018-12-28. https://github.com/JuliaGizmos/Reactive.jl ↩
https://github.com/davidanthoff/Query.jl Query almost anything in julia https://github.com/davidanthoff/Query.jl ↩
https://github.com/lilinjn/LilKanren.jl A collection of Kanren implementations in Julia https://github.com/lilinjn/LilKanren.jl ↩
Uses structs with function polymorphism and multiple dispatch ↩
"GitHub - abeschneider/PEGParser.jl: PEG Parser for Julia". GitHub. 2018-12-03. https://github.com/abeschneider/PEGParser.jl ↩
"GitHub - gitfoxi/Parsimonious.jl: A PEG parser generator for Julia". GitHub. 2017-08-03. https://github.com/gitfoxi/Parsimonious.jl ↩
Lazy https://github.com/MikeInnes/Lazy.jl https://github.com/MikeInnes/Lazy.jl ↩
class-based ↩
class-based ↩
Prototype-based ↩
"Execute loop iterations in parallel". mathworks.com. Retrieved 21 October 2016. http://mathworks.com/help/distcomp/parfor.html ↩
"Write Constraints". mathworks.com. Retrieved 21 October 2016. https://mathworks.com/help/optim/write-constraints.html ↩
"Getting Started with SimEvents". mathworks.com. Retrieved 21 October 2016. https://mathworks.com/help/simevents/getting-started-with-simevents.html ↩
"Execute loop iterations in parallel". mathworks.com. Retrieved 21 October 2016. http://mathworks.com/help/distcomp/parfor.html ↩
"Execute MATLAB expression in text - MATLAB eval". mathworks.com. Retrieved 21 October 2016. https://mathworks.com/help/matlab/ref/eval.html ↩
"Determine class of object". mathworks.com. Retrieved 21 October 2016. https://mathworks.com/help/matlab/ref/class.html ↩
"Class Metadata". mathworks.com. Retrieved 21 October 2016. https://mathworks.com/help/matlab/get-information-about-classes-and-objects.html ↩
"Object-Oriented Programming". mathworks.com. Retrieved 21 October 2016. https://mathworks.com/help/matlab/object-oriented-programming.html ↩
"Simulink". mathworks.com. Retrieved 21 October 2016. https://mathworks.com/help/simulink/ ↩
class-based ↩
class-based ↩
class-based ↩
class-based ↩
interpreter based threads http://perldoc.perl.org/threads.html ↩
Higher Order Perl http://hop.perl.plover.com/book/ ↩
class-based ↩
class-based ↩
PHP Manual, Chapter 17. Functions http://php.net/manual/en/index.php ↩
PHP Manual, Chapter 19. Classes and Objects (PHP 5) http://php.net/manual/en/index.php ↩
PHP Manual, Anonymous functions http://php.net/manual/en/index.php ↩
class-based ↩
class-based ↩
"Parallel Processing and Multiprocessing in Python". Python Wiki. Retrieved 21 October 2016. https://wiki.python.org/moin/ParallelProcessing ↩
"threading — Higher-level threading interface". docs.python.org. Retrieved 21 October 2016. https://docs.python.org/2/library/threading.html ↩
"python-constraint". pypi.python.org. Retrieved 21 October 2016. https://pypi.python.org/pypi/python-constraint ↩
"DistributedProgramming". Python Wiki. Retrieved 21 October 2016. https://wiki.python.org/moin/DistributedProgramming ↩
"Chapter 9. Metaprogramming". chimera.labs.oreilly.com. Archived from the original on 23 October 2016. Retrieved 22 October 2016. https://web.archive.org/web/20161023050954/http://chimera.labs.oreilly.com/books/1230000000393/ch09.html ↩
"Metaprogramming". readthedocs.io. Retrieved 22 October 2016. https://python-3-patterns-idioms-test.readthedocs.io/en/latest/Metaprogramming.html ↩
"PEP 443 – Single-dispatch generic functions". python.org. Retrieved 22 October 2016. https://www.python.org/dev/peps/pep-0443/ ↩
"PEP 484 – Type Hints". python.org. Retrieved 22 October 2016. https://www.python.org/dev/peps/pep-0484/#generics ↩
"PyDatalog". Retrieved 22 October 2016. https://sites.google.com/site/pydatalog/ ↩
class-based ↩
"Light Table". 2019-04-08. http://lighttable.com/ ↩
"Futureverse". https://www.futureverse.org/ ↩
"future batchtools". https://future.batchtools.futureverse.org/ ↩
"Magrittr: A Forward Pipe Operator for R". cran.r-project.org\access-date=13 July 2017. 17 November 2020. https://cran.r-project.org/package=magrittr ↩
Racket Guide: Concurrency and Synchronization https://docs.racket-lang.org/guide/concurrency.html ↩
The Rosette Guide https://docs.racket-lang.org/rosette-guide/ ↩
FrTime: A Language for Reactive Programs https://docs.racket-lang.org/frtime/ ↩
Racket Guide: Distributed Places https://docs.racket-lang.org/guide/parallelism.html#%28part._distributed-places%29 ↩
Lazy Racket https://docs.racket-lang.org/lazy/ ↩
Channels and other mechanisms https://docs.perl6.org/language/concurrency ↩
"Problem Solver module". https://raku.land/github:FCO/ProblemSolver ↩
Feed operator https://docs.perl6.org/routine/==%3E ↩
https://github.com/perl6/doc/issues/1744#issuecomment-360565196 Cro module https://github.com/perl6/doc/issues/1744#issuecomment-360565196 ↩
"Meta-programming: What, why and how". 2011-12-14. https://perl6advent.wordpress.com/2011/12/14/meta-programming-what-why-and-how/ ↩
https://perl6advent.wordpress.com/2009/12/18/day-18-roles/ Parametrized Roles https://perl6advent.wordpress.com/2009/12/18/day-18-roles/ ↩
"Meta-object protocol (MOP)". https://docs.perl6.org/language/mop ↩
https://docs.perl6.org/language/classtut Classes and Roles https://docs.perl6.org/language/classtut ↩
class-based ↩
actor programming ↩
"The Rust macros guide". Rust. Retrieved 19 January 2015. http://doc.rust-lang.org/1.0.0-alpha/book/macros.html ↩
"The Rust compiler plugins guide". Rust. Retrieved 19 January 2015. http://doc.rust-lang.org/1.0.0-alpha/book/plugins.html ↩
The Rust Reference §6.1.3.1 http://doc.rust-lang.org/1.0.0-alpha/reference.html#generic-functions ↩
class-based ↩
An Overview of the Scala Programming Language http://www.scala-lang.org/sites/default/files/linuxsoft_archives/docu/files/ScalaOverview.pdf ↩
Scala Language Specification https://wayback.archive-it.org/all/20171003043151/http://www.scala-lang.org/sites/default/files/linuxsoft_archives/docu/files/ScalaReference.pdf ↩
actor programming ↩
Akka Archived 2013-01-19 at the Wayback Machine http://doc.akka.io/docs/akka/snapshot/scala/dataflow.html ↩
class-based ↩
class-based ↩
class-based ↩
"Tcl Programming/Introduction". en.wikibooks.org. Retrieved 22 October 2016. https://en.wikibooks.org/wiki/Tcl_Programming/Introduction#One_language.2C_many_styles ↩
Prototype-based ↩
"TCLLIB - Tcl Standard Library: snitfaq". sourceforge.net. Retrieved 22 October 2016. http://tmml.sourceforge.net/doc/tcllib/snitfaq.html ↩
using TPL Dataflow http://msdn.microsoft.com/en-us/devlabs/gg585582.aspx ↩
class-based ↩
using Reactive Extensions (Rx) http://msdn.microsoft.com/en-us/data/gg577609.aspx ↩
class-based ↩
Notes for Programming Language Experts, Wolfram Language Documentation. http://www.wolfram.com/language/for-experts/ ↩
External Programs, Wolfram Language Documentation. https://reference.wolfram.com/language/tutorial/ExternalPrograms.html ↩