List of concurrent and parallel programming languages

This article lists concurrent and parallel programming languages, categorizing them by a defining paradigm. A concurrent programming language is defined as one which uses the concept of simultaneously executing processes or threads of execution as a means of structuring a program. A parallel language is able to express programs that are executable on more than one processor. Both types are listed, as concurrency is a useful tool in expressing parallelism, but it is not necessary. In both cases, the features must be part of the language syntax and not an extension such as a library.

The following categories aim to capture the main, defining feature of the languages contained, but they are not necessarily orthogonal.

Coordination languages

Dataflow programming

Distributed computing

  • Bloom
  • Hermes
  • Julia
  • Limbo
  • MPD
  • Oz - Multi-paradigm language with particular support for constraint and distributed programming.
  • Sequoia
  • SR

Event-driven and hardware description

Functional programming

Logic programming



Object-oriented programming

Partitioned global address space (PGAS)

Message passing

Actor model

CSP based


These application programming interfaces support parallelism in host languages.

See also


  1. Thom Frühwirth (9 July 2009). Constraint Handling Rules. Cambridge University Press. ISBN 978-0-521-87776-3.
  2. "Threads - The Rust Programming Language". Retrieved 2017-09-15.
  3. "Message Passing - The Rust Programming Language". Retrieved 2017-09-15.
  4. Alan Kay The Early History Of Smalltalk
  5. "Crystal Programming Language - Concurrency". Retrieved 10 August 2018.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.