This article possibly contains original research. Please improve it by verifying 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.

Paradigm summaries

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

Language overview

See also

Notes

  1. ^ rendezvous and monitor-like based
  2. ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag ah ai class-based
  3. ^ a b c d e template metaprogramming
  4. ^ a b c using TPL Dataflow
  5. ^ only lambda support (lazy functional programming)
  6. ^ a b c using Reactive Extensions (Rx)
  7. ^ multiple dispatch, method combinations
  8. ^ a b c d e actor programming
  9. ^ promises, native extensions
  10. ^ using Node.js' cluster module or child_process.fork method, web workers in the browser, etc.
  11. ^ a b c d Prototype-based
  12. ^ using Reactive Extensions (RxJS)
  13. ^ in Node.js via their events module
  14. ^ in browsers via their native EventTarget API
  15. ^ a b c purely functional
  16. ^ parameterized classes
  17. ^ immutable
  18. ^ multiple dispatch, not traditional single
  19. ^ Akka Archived 2013-01-19 at the Wayback Machine

Citations

  1. ^ 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.
  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. ^ Thread support
  8. ^ Atomics support
  9. ^ Memory model
  10. ^ Gecode
  11. ^ SystemC
  12. ^ Boost.Iostreams
  13. ^ Boolinq
  14. ^ "AraRat" (PDF). Archived from the original (PDF) on 2019-08-19. Retrieved 2019-09-15.
  15. ^ OpenMPI
  16. ^ Boost.MPI
  17. ^ Boost.MPL
  18. ^ LC++
  19. ^ Castor Archived 2013-01-25 at the Wayback Machine
  20. ^ Reflect Library
  21. ^ N3534
  22. ^ Boost.Spirit
  23. ^ Clojure - Concurrent Programming
  24. ^ Clojure - core.async
  25. ^ Clojure - Functional Programming
  26. ^ Clojure - Macros
  27. ^ Clojure - core.logic
  28. ^ Clojure - Threading Macros Guide
  29. ^ "Light Table". 2019-04-08.
  30. ^ Multimethods and Hierarchies
  31. ^ Agents and Asynchronous Actions
  32. ^ [1] many concurrency paradigms implemented as language extensions
  33. ^ [2] constraint programming inside CL through extensions
  34. ^ [3] dataflow extension
  35. ^ [4] by creating DSLs using the built-in metaprogramming; also see note on functional, constraint and logic paradigms, which are part of declarative
  36. ^ [5] MPI, etc via language extensions
  37. ^ template metaprogramming using macros (see C++)
  38. ^ [6] [7] [8] Prolog implemented as a language extension
  39. ^ Common Lisp Object System see Wikipedia article on CLOS, the Common Lisp Object System.
  40. ^ implemented by the user via a short macro, example of implementation
  41. ^ - Visual programming tool based on Common Lisp
  42. ^ [9] rule-based programming extension
  43. ^ [10] Archived 2018-04-26 at the Wayback Machine through the Meta Object Protocol
  44. ^ D Language Feature Table
  45. ^ Phobos std.algorithm
  46. ^ D language String Mixins
  47. ^ The Little JavaScripter demonstrates fundamental commonality with Scheme, a functional language.
  48. ^ Object-Oriented Programming in JavaScript Archived 2019-02-10 at the Wayback Machine gives an overview of object-oriented programming techniques in JavaScript.
  49. ^ "React – A JavaScript library for building user interfaces". 2019-04-08.
  50. ^ "TNG-Hooks". GitHub. 2019-04-08.
  51. ^ "Lodash documentation". 2019-04-08.
  52. ^ "mori". 2019-04-08.
  53. ^ "Light Table". 2019-04-08.
  54. ^ "TNG-Hooks". GitHub. 2019-04-08.
  55. ^ "Prolog embedding". Haskell.org.
  56. ^ "Functional Reactive Programming". HaskellWiki.
  57. ^ Cloud Haskell
  58. ^ "Template Haskell". HaskellWiki.
  59. ^ "Logict: A backtracking logic-programming monad". Haskell.org.
  60. ^ Kollmansberger, Steve; Erwig, Martin (30 May 2006). "Haskell Rules: Embedding Rule Systems in Haskell" (PDF). Oregon State University.
  61. ^ https://jcp.org/en/jsr/detail?id=331 JSR 331: Constraint Programming API
  62. ^ https://github.com/GoogleCloudPlatform/DataflowJavaSDK Google Cloud Platform Dataflow SDK
  63. ^ "JuliaOpt/JuMP.jl". GitHub. JuliaOpt. 11 February 2020. Retrieved 12 February 2020.
  64. ^ "GitHub - MikeInnes/DataFlow.jl". GitHub. 2019-01-15.
  65. ^ "GitHub - JuliaGizmos/Reactive.jl: Reactive programming primitives for Julia". GitHub. 2018-12-28.
  66. ^ https://github.com/davidanthoff/Query.jl Query almost anything in julia
  67. ^ https://github.com/lilinjn/LilKanren.jl A collection of Kanren implementations in Julia
  68. ^ "GitHub - abeschneider/PEGParser.jl: PEG Parser for Julia". GitHub. 2018-12-03.
  69. ^ "GitHub - gitfoxi/Parsimonious.jl: A PEG parser generator for Julia". GitHub. 2017-08-03.
  70. ^ Lazy https://github.com/MikeInnes/Lazy.jl
  71. ^ "Execute loop iterations in parallel". mathworks.com. Retrieved 21 October 2016.
  72. ^ "Write Constraints". mathworks.com. Retrieved 21 October 2016.
  73. ^ "Getting Started with SimEvents". mathworks.com. Retrieved 21 October 2016.
  74. ^ "Execute loop iterations in parallel". mathworks.com. Retrieved 21 October 2016.
  75. ^ "Execute MATLAB expression in text - MATLAB eval". mathworks.com. Retrieved 21 October 2016.
  76. ^ "Determine class of object". mathworks.com. Retrieved 21 October 2016.
  77. ^ "Class Metadata". mathworks.com. Retrieved 21 October 2016.
  78. ^ "Object-Oriented Programming". mathworks.com. Retrieved 21 October 2016.
  79. ^ "Simulink". mathworks.com. Retrieved 21 October 2016.
  80. ^ interpreter based threads
  81. ^ Higher Order Perl
  82. ^ PHP Manual, Chapter 17. Functions
  83. ^ PHP Manual, Chapter 19. Classes and Objects (PHP 5)
  84. ^ PHP Manual, Anonymous functions
  85. ^ "Parallel Processing and Multiprocessing in Python". Python Wiki. Retrieved 21 October 2016.
  86. ^ "threading — Higher-level threading interface". docs.python.org. Retrieved 21 October 2016.
  87. ^ "python-constraint". pypi.python.org. Retrieved 21 October 2016.
  88. ^ "DistributedProgramming". Python Wiki. Retrieved 21 October 2016.
  89. ^ "Chapter 9. Metaprogramming". chimera.labs.oreilly.com. Archived from the original on 23 October 2016. Retrieved 22 October 2016.
  90. ^ "Metaprogramming". readthedocs.io. Retrieved 22 October 2016.
  91. ^ "PEP 443 – Single-dispatch generic functions". python.org. Retrieved 22 October 2016.
  92. ^ "PEP 484 – Type Hints". python.org. Retrieved 22 October 2016.
  93. ^ "PyDatalog". Retrieved 22 October 2016.
  94. ^ "Light Table". 2019-04-08.
  95. ^ "Futureverse".
  96. ^ "future batchtools".
  97. ^ "Magrittr: A Forward Pipe Operator for R". cran.r-project.org\access-date=13 July 2017. 17 November 2020.
  98. ^ Racket Guide: Concurrency and Synchronization
  99. ^ The Rosette Guide
  100. ^ FrTime: A Language for Reactive Programs
  101. ^ Racket Guide: Distributed Places
  102. ^ Lazy Racket
  103. ^ Channels and other mechanisms
  104. ^ "Problem Solver module".
  105. ^ Feed operator
  106. ^ https://github.com/perl6/doc/issues/1744#issuecomment-360565196 Cro module
  107. ^ "Meta-programming: What, why and how". 2011-12-14.
  108. ^ https://perl6advent.wordpress.com/2009/12/18/day-18-roles/ Parametrized Roles
  109. ^ "Meta-object protocol (MOP)".
  110. ^ https://docs.perl6.org/language/classtut Classes and Roles
  111. ^ "The Rust macros guide". Rust. Retrieved 19 January 2015.
  112. ^ "The Rust compiler plugins guide". Rust. Retrieved 19 January 2015.
  113. ^ The Rust Reference §6.1.3.1
  114. ^ An Overview of the Scala Programming Language
  115. ^ Scala Language Specification
  116. ^ "Tcl Programming/Introduction". en.wikibooks.org. Retrieved 22 October 2016.
  117. ^ "TCLLIB - Tcl Standard Library: snitfaq". sourceforge.net. Retrieved 22 October 2016.
  118. ^ Notes for Programming Language Experts, Wolfram Language Documentation.
  119. ^ External Programs, Wolfram Language Documentation.

References