Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Paradigm summaries  





2 Language overview  





3 See also  





4 Notes  





5 Citations  





6 References  














Comparison of multi-paradigm programming languages






Français
Українська
 

Edit links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 




In other projects  



Wikimedia Commons
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 

(Redirected from Multi-paradigm)

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

Paradigm summaries[edit]

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

Language overview[edit]

See also[edit]

Notes[edit]

  1. ^ rendezvous and monitor-like based
  • ^ 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
  • ^ a b c d e template metaprogramming
  • ^ a b c using TPL Dataflow
  • ^ only lambda support (lazy functional programming)
  • ^ a b c using Reactive Extensions (Rx)
  • ^ multiple dispatch, method combinations
  • ^ a b c d e actor programming
  • ^ promises, native extensions
  • ^ using Node.js' cluster module or child_process.fork method, web workers in the browser, etc.
  • ^ a b c d Prototype-based
  • ^ using Reactive Extensions (RxJS)
  • ^ in Node.js via their events module
  • ^ in browsers via their native EventTarget API
  • ^ a b c purely functional
  • ^ parameterized classes
  • ^ immutable
  • ^ multiple dispatch, not traditional single
  • ^ Akka Archived 2013-01-19 at the Wayback Machine
  • Citations[edit]

    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.
  • ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 9: Tasks and Synchronization
  • ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3 Annex E: Distributed Systems
  • ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 12: Generic Units
  • ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, Section 6: Subprograms
  • ^ Ada Reference Manual, ISO/IEC 8652:2005(E) Ed. 3, 3.9 Tagged Types and Type Extensions
  • ^ Thread support
  • ^ Atomics support
  • ^ Memory model
  • ^ Gecode
  • ^ SystemC
  • ^ Boost.Iostreams
  • ^ Boolinq
  • ^ "AraRat" (PDF). Archived from the original (PDF) on 2019-08-19. Retrieved 2019-09-15.
  • ^ OpenMPI
  • ^ Boost.MPI
  • ^ Boost.MPL
  • ^ LC++
  • ^ Castor Archived 2013-01-25 at the Wayback Machine
  • ^ Reflect Library
  • ^ N3534
  • ^ Boost.Spirit
  • ^ Clojure - Concurrent Programming
  • ^ Clojure - core.async
  • ^ Clojure - Functional Programming
  • ^ Clojure - Macros
  • ^ Clojure - core.logic
  • ^ Clojure - Threading Macros Guide
  • ^ "Light Table". 2019-04-08.
  • ^ Multimethods and Hierarchies
  • ^ Agents and Asynchronous Actions
  • ^ [1] many concurrency paradigms implemented as language extensions
  • ^ [2] constraint programming inside CL through extensions
  • ^ [3] dataflow extension
  • ^ [4] by creating DSLs using the built-in metaprogramming; also see note on functional, constraint and logic paradigms, which are part of declarative
  • ^ [5] MPI, etc via language extensions
  • ^ template metaprogramming using macros (see C++)
  • ^ [6] [7] [8] Prolog implemented as a language extension
  • ^ Common Lisp Object System see Wikipedia article on CLOS, the Common Lisp Object System.
  • ^ implemented by the user via a short macro, example of implementation
  • ^ - Visual programming tool based on Common Lisp
  • ^ [9] rule-based programming extension
  • ^ [10] Archived 2018-04-26 at the Wayback Machine through the Meta Object Protocol
  • ^ D Language Feature Table
  • ^ Phobos std.algorithm
  • ^ D language String Mixins
  • ^ The Little JavaScripter demonstrates fundamental commonality with Scheme, a functional language.
  • ^ Object-Oriented Programming in JavaScript Archived 2019-02-10 at the Wayback Machine gives an overview of object-oriented programming techniques in JavaScript.
  • ^ "React – A JavaScript library for building user interfaces". 2019-04-08.
  • ^ "TNG-Hooks". GitHub. 2019-04-08.
  • ^ "Lodash documentation". 2019-04-08.
  • ^ "mori". 2019-04-08.
  • ^ "Light Table". 2019-04-08.
  • ^ "TNG-Hooks". GitHub. 2019-04-08.
  • ^ "Prolog embedding". Haskell.org.
  • ^ "Functional Reactive Programming". HaskellWiki.
  • ^ Cloud Haskell
  • ^ "Template Haskell". HaskellWiki.
  • ^ "Logict: A backtracking logic-programming monad". Haskell.org.
  • ^ Kollmansberger, Steve; Erwig, Martin (30 May 2006). "Haskell Rules: Embedding Rule Systems in Haskell" (PDF). Oregon State University.
  • ^ https://jcp.org/en/jsr/detail?id=331 JSR 331: Constraint Programming API
  • ^ https://github.com/GoogleCloudPlatform/DataflowJavaSDK Google Cloud Platform Dataflow SDK
  • ^ "JuliaOpt/JuMP.jl". GitHub. JuliaOpt. 11 February 2020. Retrieved 12 February 2020.
  • ^ "GitHub - MikeInnes/DataFlow.jl". GitHub. 2019-01-15.
  • ^ "GitHub - JuliaGizmos/Reactive.jl: Reactive programming primitives for Julia". GitHub. 2018-12-28.
  • ^ https://github.com/davidanthoff/Query.jl Query almost anything in julia
  • ^ https://github.com/lilinjn/LilKanren.jl A collection of Kanren implementations in Julia
  • ^ "GitHub - abeschneider/PEGParser.jl: PEG Parser for Julia". GitHub. 2018-12-03.
  • ^ "GitHub - gitfoxi/Parsimonious.jl: A PEG parser generator for Julia". GitHub. 2017-08-03.
  • ^ Lazy https://github.com/MikeInnes/Lazy.jl
  • ^ "Execute loop iterations in parallel". mathworks.com. Retrieved 21 October 2016.
  • ^ "Write Constraints". mathworks.com. Retrieved 21 October 2016.
  • ^ "Getting Started with SimEvents". mathworks.com. Retrieved 21 October 2016.
  • ^ "Execute loop iterations in parallel". mathworks.com. Retrieved 21 October 2016.
  • ^ "Execute MATLAB expression in text - MATLAB eval". mathworks.com. Retrieved 21 October 2016.
  • ^ "Determine class of object". mathworks.com. Retrieved 21 October 2016.
  • ^ "Class Metadata". mathworks.com. Retrieved 21 October 2016.
  • ^ "Object-Oriented Programming". mathworks.com. Retrieved 21 October 2016.
  • ^ "Simulink". mathworks.com. Retrieved 21 October 2016.
  • ^ interpreter based threads
  • ^ Higher Order Perl
  • ^ PHP Manual, Chapter 17. Functions
  • ^ PHP Manual, Chapter 19. Classes and Objects (PHP 5)
  • ^ PHP Manual, Anonymous functions
  • ^ "Parallel Processing and Multiprocessing in Python". Python Wiki. Retrieved 21 October 2016.
  • ^ "threading — Higher-level threading interface". docs.python.org. Retrieved 21 October 2016.
  • ^ "python-constraint". pypi.python.org. Retrieved 21 October 2016.
  • ^ "DistributedProgramming". Python Wiki. Retrieved 21 October 2016.
  • ^ "Chapter 9. Metaprogramming". chimera.labs.oreilly.com. Archived from the original on 23 October 2016. Retrieved 22 October 2016.
  • ^ "Metaprogramming". readthedocs.io. Retrieved 22 October 2016.
  • ^ "PEP 443 – Single-dispatch generic functions". python.org. Retrieved 22 October 2016.
  • ^ "PEP 484 – Type Hints". python.org. Retrieved 22 October 2016.
  • ^ "PyDatalog". Retrieved 22 October 2016.
  • ^ "Light Table". 2019-04-08.
  • ^ "Futureverse".
  • ^ "future batchtools".
  • ^ "Magrittr: A Forward Pipe Operator for R". cran.r-project.org\access-date=13 July 2017. 17 November 2020.
  • ^ Racket Guide: Concurrency and Synchronization
  • ^ The Rosette Guide
  • ^ FrTime: A Language for Reactive Programs
  • ^ Racket Guide: Distributed Places
  • ^ Lazy Racket
  • ^ Channels and other mechanisms
  • ^ "Problem Solver module".
  • ^ Feed operator
  • ^ https://github.com/perl6/doc/issues/1744#issuecomment-360565196 Cro module
  • ^ "Meta-programming: What, why and how". 2011-12-14.
  • ^ https://perl6advent.wordpress.com/2009/12/18/day-18-roles/ Parametrized Roles
  • ^ "Meta-object protocol (MOP)".
  • ^ https://docs.perl6.org/language/classtut Classes and Roles
  • ^ "The Rust macros guide". Rust. Retrieved 19 January 2015.
  • ^ "The Rust compiler plugins guide". Rust. Retrieved 19 January 2015.
  • ^ The Rust Reference §6.1.3.1
  • ^ An Overview of the Scala Programming Language
  • ^ Scala Language Specification
  • ^ "Tcl Programming/Introduction". en.wikibooks.org. Retrieved 22 October 2016.
  • ^ "TCLLIB - Tcl Standard Library: snitfaq". sourceforge.net. Retrieved 22 October 2016.
  • ^ Notes for Programming Language Experts, Wolfram Language Documentation.
  • ^ External Programs, Wolfram Language Documentation.
  • References[edit]


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

    Categories: 
    Programming paradigms
    Programming language comparisons
    Hidden categories: 
    Webarchive template wayback links
    Articles with short description
    Short description is different from Wikidata
    Articles that may contain original research from August 2009
    All articles that may contain original research
    All articles with unsourced statements
    Articles with unsourced statements from March 2007
     



    This page was last edited on 25 May 2024, at 09:47 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki