Harman Patil (Editor)

List of concurrent and parallel programming languages

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

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.

Contents

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

Actor model

  • Axum - a domain-specific language being developed by Microsoft.
  • Elixir (runs on the Erlang VM)
  • Erlang
  • Janus
  • Red
  • SALSA
  • Scala/Akka (toolkit)
  • Smalltalk
  • Rust
  • Coordination languages

  • CnC (Concurrent Collections)
  • Glenda
  • Linda coordination language
  • Millipede
  • Dataflow programming

  • CAL
  • E (also object-oriented)
  • Joule (also distributed)
  • LabView (also synchronous)
  • Lustre (also synchronous)
  • Preesm (also synchronous)
  • Signal (also synchronous)
  • SISAL
  • 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

  • Esterel (also synchronous)
  • SystemC
  • SystemVerilog
  • Verilog
  • Verilog-AMS - math modeling of continuous time systems
  • VHDL
  • Functional programming

  • Clojure
  • Concurrent ML
  • Elixir
  • Erlang
  • Haskell
  • Id
  • MultiLisp
  • SequenceL
  • Elm
  • Logic programming

  • Parlog
  • Prolog
  • Monitor-based

  • Concurrent Pascal
  • Multi-threaded

  • C=
  • Cilk
  • Cilk Plus
  • C#
  • Clojure
  • Fork - Programming language for the PRAM model.
  • Java
  • ParaSail
  • SequenceL
  • Object-oriented programming

  • μC++
  • Ada
  • C*
  • C#
  • C++ AMP
  • Charm++
  • D Programming Language
  • Eiffel SCOOP (Simple Concurrent Object-Oriented Programming)
  • Emerald (also distributed)
  • Java
  • Join Java - A Java-based language with features from the join-calculus.
  • ParaSail
  • Smalltalk
  • Partitioned Global Address Space (PGAS)

  • Chapel
  • Coarray Fortran
  • Fortress
  • High Performance Fortran
  • Titanium
  • Unified Parallel C
  • X10
  • ZPL
  • Message passing

  • Ateji PX - An extension of Java with parallel primitives inspired from pi-calculus.
  • CSP based

  • Alef
  • Ease
  • FortranM
  • Go
  • JoCaml
  • Joyce
  • Limbo (also distributed)
  • Newsqueak
  • Occam
  • Occam-π - A derivative of Occam that integrates features from the pi-calculus
  • PyCSP
  • SuperPascal
  • XC - A C-based language, integrating features from Occam, developed by XMOS
  • APIs/Frameworks

    These application programming interfaces support parallelism in host languages.

  • Apache Hadoop
  • Apache Spark
  • Apache Flink
  • CUDA
  • OpenCL
  • OpenHMPP
  • OpenMP for C, C++, and Fortran (shared memory and attached GPUs)
  • References

    List of concurrent and parallel programming languages Wikipedia


    Similar Topics