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
- Actor model
- Coordination languages
- Dataflow programming
- Distributed computing
- Event driven and hardware description
- Functional programming
- Logic programming
- Monitor based
- Multi threaded
- Object oriented programming
- Partitioned Global Address Space PGAS
- Message passing
- CSP based
- APIsFrameworks
- References
The following categories aim to capture the main, defining feature of the languages contained, but they are not necessarily orthogonal.
Actor model
Coordination languages
Dataflow programming
Distributed computing
Event-driven and hardware description
Functional programming
Logic programming
Monitor-based
Multi-threaded
Object-oriented programming
Partitioned Global Address Space (PGAS)
Message passing
CSP based
APIs/Frameworks
These application programming interfaces support parallelism in host languages.