List of concurrent and parallel programming languages
Encyclopedia
This article lists concurrent and parallel programming languages, categorising them by a defining paradigm. A concurrent 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.

Actor Model

  • Axum
    Axum (programming language)
    Axum is a domain specific concurrent programming language, based on the Actor model, being developed by Microsoft...

     - a domain-specific language being developed by Microsoft.
  • Erlang (also functional)
  • Janus
    Janus (programming language)
    The name Janus refers to at least two computer programming languages or partial descriptions of possible computer programing languages:-Concurrent Constraint Programming:...

  • SALSA
  • Scala

Coordination languages

  • Glenda
  • Linda coordination language
    Linda (coordination language)
    In computer science, Linda is a model of coordination and communication among several parallel processes operating upon objects stored in and retrieved from shared, virtual, associative memory...

  • Millipede

CSP-based

  • Alef
  • Ateji PX
    Ateji PX
    Ateji PX is an object-oriented programming language extension for Java. It is intended to facilliate parallel computing on multi-core processors, GPU, Grid and Cloud....

     - An extension of Java
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

     with parallel primitives inspired from pi-calculus
    Pi-calculus
    In theoretical computer science, the π-calculus is a process calculus originally developed by Robin Milner, and David Walker as a continuation of work on the process calculus CCS...

    .
  • Concurrent Pascal
    Concurrent Pascal
    Concurrent Pascal was designed by Per Brinch Hansen for writing concurrent computing programs such asoperating systems and real-time monitoring systems on shared memorycomputers....

  • Ease
  • Limbo (also distributed)
  • Joyce
    Joyce (programming language)
    Joyce is a secure, concurrent programming language designed by Per Brinch Hansen in the 1980s. It is based on the sequential language Pascal and the principles of Communicating Sequential Processes...

  • Newsqueak
    Newsqueak
    Newsqueak is a concurrent programming language for writing application software for windowing systems. It was designed at Bell Labs by Rob Pike in the late 1980s....

  • Occam
    Occam (programming language)
    occam is a concurrent programming language that builds on the Communicating Sequential Processes process algebra, and shares many of its features. It is named after William of Ockham of Occam's Razor fame....

  • Occam-π
  • SuperPascal
    SuperPascal
    Super Pascal is an imperative, concurrent computing programming language developed by Brinch Hansen. It was designed as a publication language: a thinking tool to enable the clear and concise expression of concepts in parallel programming. This is in contrast with implementation languages which are...

  • XC
    XC
    XC may refer to:* Christogram* 90 in Roman numerals* Cross-country running* Cross-country skiing* Cross-country cycling* Cross-country equestrianism* Cross-country paragliding* XC, a model of the Ford Falcon...

     - A C-based language developed by XMOS
    XMOS
    XMOS is a fabless semiconductor company that develops multi-core multi-threaded processors designed to execute several real-time tasks, DSP, and control flow all at once.-Company history:...

    .

Dataflow

  • E
    E (programming language)
    E is an object-oriented programming language for secure distributed computing, created by Mark S. Miller, Dan Bornstein, and others at Electric Communities in 1997. E is mainly descended from the concurrent language Joule and from Original-E, a set of extensions to Java for secure distributed...

     (also object-oriented)
  • Joule
    Joule (programming language)
    Joule is a concurrent dataflow programming language, designed for building distributed applications. It is so concurrent, that the order of statements within a block is irrelevant to the operation of the block. Statements are executed whenever possible, based on their inputs. Everything in Joule...

     (also distributed)
  • SISAL
    SISAL
    SISAL is a general-purpose single assignment functional programming language with strict semantics, implicit parallelism, and efficient array handling. SISAL outputs a dataflow graph in Intermediary Form 1...


Event-driven & hardware description

  • Verilog
    Verilog
    In the semiconductor and electronic design industry, Verilog is a hardware description language used to model electronic systems. Verilog HDL, not to be confused with VHDL , is most commonly used in the design, verification, and implementation of digital logic chips at the register-transfer level...

  • VHDL
  • SystemC
    SystemC
    SystemC is a set of C++ classes and macros which provide an event-driven simulation kernel in C++ . These facilities enable a designer to simulate concurrent processes, each described using plain C++ syntax...

  • ParC
    PARC
    PARC or Parc may refer to:* PARC , the Palo Alto Research Center * PARC Management, a theme park and entertainment venue operator...

     - Parallel C++ through language extensions.

Functional

  • Concurrent Haskell
    Concurrent Haskell
    Concurrent Haskell extends Haskell 98 with explicit concurrency. The two main concepts underpinning Concurrent Haskell are:* A primitive type MVar α implementing a bounded/single-place asynchronous channel, which is either empty or holds a value of type α....

  • Concurrent ML
    Concurrent ML
    Concurrent ML is a concurrent extension of the Standard ML programming language.-Sample Code:Here is sample code to print "hello, world" to the console. It spawns a thread which creates a channel for strings. This thread then spawns another thread which prints the first string that is received...

  • Id
    Id (programming language)
    Id is a general-purpose parallel programming language, developed by Arvind and Nikhil, at MIT, in the late 1970 and throughout the 1980s. The major subset of Id is a purely functional programming language with non-strict semantics...


GPU languages

  • CUDA
    CUDA
    CUDA or Compute Unified Device Architecture is a parallel computing architecture developed by Nvidia. CUDA is the computing engine in Nvidia graphics processing units that is accessible to software developers through variants of industry standard programming languages...

  • OpenCL
    OpenCL
    OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of CPUs, GPUs, and other processors. OpenCL includes a language for writing kernels , plus APIs that are used to define and then control the platforms...

  • OpenHMPP

Multi-threaded

  • Cilk
    Cilk
    Cilk is a general-purpose programming language designed for multithreaded parallel computing. The commercial instantiation is Intel Cilk Plus.-Design:...

  • Clojure
    Clojure
    Clojure |closure]]") is a recent dialect of the Lisp programming language created by Rich Hickey. It is a general-purpose language supporting interactive development that encourages a functional programming style, and simplifies multithreaded programming....

  • Fork - Programming language for the PRAM
    Pram
    Pram may refer to:*Pram, Austria* Pram , a musical group* Pram , a type of shallow-draught, flat-bottomed ship * A type of dinghy with a flat bow* A type of wheeled baby transport...

     model.
  • Go
    Go (programming language)
    Go is a compiled, garbage-collected, concurrent programming language developed by Google Inc.The initial design of Go was started in September 2007 by Robert Griesemer, Rob Pike, and Ken Thompson. Go was officially announced in November 2009. In May 2010, Rob Pike publicly stated that Go was being...

  • Parasail

Object-oriented

  • Ada
    Ada (programming language)
    Ada is a structured, statically typed, imperative, wide-spectrum, and object-oriented high-level computer programming language, extended from Pascal and other languages...

  • C*
  • Charm++
    Charm++
    Charm++ is a parallel object-oriented programming language based on C++ and developed in the Parallel Programming Laboratory at the University of Illinois. Charm++ is designed with the goal of enhancing programmer productivity by providing a high-level abstraction of a parallel program while at the...

  • Emerald (also distributed)
  • SCOOP (Simple Concurrent Object-Oriented Programming)
    SCOOP (software)
    SCOOP stands for Simple Concurrent Object Oriented Programming. It is a concurrency model designed for the Eiffel programming language, conceived by Eiffel's creator and designer, Bertrand Meyer....


Partitioned global address space (PGAS)

  • Chapel
    Chapel programming language
    Chapel is a new parallel programming language developed by Cray. It is being developed as part of the Cray Cascade project, a participant in DARPA's High Productivity Computing Systems program, which has the goal of increasing supercomputer productivity by the year 2010...

  • Co-array Fortran
    Co-array Fortran
    Co-array Fortran , formerly known as F--, is an extension of Fortran 95/2003 for parallel processing created by Robert Numrich and John Reid in 1990s...

  • Fortress
  • High Performance Fortran
    High Performance Fortran
    High Performance Fortran is an extension of Fortran 90 with constructs that support parallel computing, published by the High Performance Fortran Forum . The HPFF was convened and chaired by Ken Kennedy of Rice University...

  • Titanium
  • Unified Parallel C
    Unified Parallel C
    Unified Parallel C is an extension of the C programming language designed for high-performance computing on large-scale parallel machines, including those with a common global address space and those with distributed memory...

  • X10
    X10 (programming language)
    X10 is a programming language being developed by IBM at the Thomas J. Watson Research Center as part of the Productive, Easy-to-use, Reliable Computing System project funded by DARPA's High Productivity Computing Systems program...

  • ZPL

Unsorted

  • NESL
    NESL
    NESL is a parallel programming language developed at Carnegie Mellon by the SCandAL project and released in 1993. It integrates various ideas from parallel algorithms, and functional programming and array programming languages....

  • Orc
    Orc (programming language)
    Orc is a concurrent, nondeterministic computer programming language created by Jayadev Misra at the University of Texas at Austin. It's based on a Kleene algebra model.-Bibliography:...

  • Oz
    Oz (programming language)
    Oz is a multiparadigm programming language, developed in the Programming Systems Lab at Université catholique de Louvain, for programming language education. It has a canonical textbook: Concepts, Techniques, and Models of Computer Programming....

    - Multi-paradigm language with particular support for constraint and distributed programming.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK