36:
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
37:
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 (libraries such as the posix-thread library implement a parallel
182:
146:
708:
713:
44:
The following categories aim to capture the main, defining feature of the languages contained, but they are not necessarily orthogonal.
740:
1081:
927:
1086:
508:
398:
963:
758:
25:
488:
579:
688:
600:
557:
445:
33:
769:
526:
483:
424:
418:
403:
365:
337:
279:
151:
703:
697:
693:
585:
562:
518:
274:
264:
203:
156:
117:
105:
61:
17:
844:
824:
815:
804:
799:
726:
316:
284:
166:
161:
93:
774:
764:
684:
678:
655:
645:
567:
537:
467:
450:
435:
21:
932:
718:
623:
618:
473:
269:
171:
904:
784:
430:
377:
349:
322:
294:
187:
176:
24:. Concurrent and parallel programming languages involve multiple timelines. Such languages provide
605:
513:
199:
87:
953:
248:
53:
1014:
179:- Multi-paradigm language with particular support for constraint and distributed programming.
140:
922:
76:
383:
8:
1054:
1015:"Using Message Passing to Transfer Data Between Threads - The Rust Programming Language"
613:
82:
979:
1040:
1002:
959:
413:
360:
355:
521:
635:
597:
since
Fortran 2008, further extensions were added with the Fortran 2018 standard)
590:
38:
29:
859:
These application programming interfaces support parallelism in host languages.
730:
1075:
873:
546:
259:
220:
1003:
Documentation » The Python
Standard Library » Concurrent Execution
878:
868:
980:"Using Threads to Run Code Simultaneously - The Rust Programming Language"
863:
838:
828:
672:
649:
230:
41:
but lack the syntax and grammar required to be a programming language).
493:
820:
810:
735:
660:
542:
503:
498:
455:
393:
304:
299:
1037:
893:
833:
779:
641:
745:
594:
552:
531:
440:
408:
289:
254:
225:
215:
209:
99:
898:
888:
794:
332:
327:
111:
128:
123:
910:
883:
848:
789:
388:
236:
681:- a domain-specific language being developed by Microsoft.
573:
901:
for C, C++, and
Fortran (shared memory and attached GPUs)
193:
478:
522:
SCOOP (Simple
Concurrent Object-Oriented Programming)
843:XC – a C-based language, integrating features from
28:constructs whose behavior is defined by a parallel
1073:
1031:
907:for C, C++, and Fortran (distributed computing)
545:- A Java-based language with features from the
951:
461:
1055:"Crystal Programming Language – Concurrency"
945:
233:- math modeling of continuous time systems
242:
47:
928:List of concurrent programming languages
134:
102:(also synchronous, also object-oriented)
648:with parallel primitives inspired from
574:Partitioned global address space (PGAS)
70:
1074:
194:Event-driven and hardware description
423:Fork – programming language for the
310:
13:
854:
827:that integrates features from the
759:Communicating sequential processes
629:
534:from the ISO Fortran 2003 standard
20:, categorizing them by a defining
16:This article lists concurrent and
14:
1098:
371:
1082:Concurrent programming languages
580:Partitioned global address space
343:
34:concurrent programming language
1087:Lists of programming languages
1047:
1042:The Early History Of Smalltalk
1007:
996:
972:
958:. Cambridge University Press.
952:Thom Frühwirth (9 July 2009).
666:
18:parallel programming languages
1:
938:
700:, the Erlang virtual machine)
204:Hardware Description Language
752:
317:Concurrent logic programming
54:CnC (Concurrent Collections)
7:
916:
709:Pony (programming language)
468:Object-oriented programming
462:Object-oriented programming
62:Linda coordination language
10:
1103:
933:Parallel programming model
756:
670:
633:
593:(included in standard/ISO
577:
465:
375:
347:
314:
246:
197:
138:
74:
955:Constraint Handling Rules
905:Message Passing Interface
748:- LabVIEW Actor Framework
378:Multithreading (software)
350:Monitor (synchronization)
323:Constraint Handling Rules
606:High Performance Fortran
200:Event-driven programming
514:D programming language
249:Functional programming
243:Functional programming
90:(also object-oriented)
48:Coordination languages
141:Distributed computing
135:Distributed computing
923:Concurrent computing
77:Dataflow programming
71:Dataflow programming
823:– a derivative of
807:(also distributed)
644:- An extension of
614:Unified Parallel C
212:(also synchronous)
120:(also synchronous)
114:(also synchronous)
108:(also synchronous)
96:(also distributed)
1019:doc.rust-lang.org
984:doc.rust-lang.org
965:978-0-521-87776-3
414:Concurrent Pascal
361:Concurrent Euclid
356:Concurrent Pascal
311:Logic programming
1094:
1066:
1065:
1063:
1061:
1051:
1045:
1035:
1029:
1028:
1026:
1025:
1011:
1005:
1000:
994:
993:
991:
990:
976:
970:
969:
949:
1102:
1101:
1097:
1096:
1095:
1093:
1092:
1091:
1072:
1071:
1070:
1069:
1059:
1057:
1053:
1052:
1048:
1036:
1032:
1023:
1021:
1013:
1012:
1008:
1001:
997:
988:
986:
978:
977:
973:
966:
950:
946:
941:
919:
857:
855:APIs/frameworks
847:, developed by
761:
755:
675:
669:
638:
636:Message passing
632:
630:Message passing
591:Coarray Fortran
582:
576:
470:
464:
380:
374:
352:
346:
319:
313:
251:
245:
206:
198:Main articles:
196:
143:
137:
79:
73:
50:
39:execution model
30:execution model
26:synchronization
12:
11:
5:
1100:
1090:
1089:
1084:
1068:
1067:
1046:
1030:
1006:
995:
971:
964:
943:
942:
940:
937:
936:
935:
930:
925:
918:
915:
914:
913:
908:
902:
896:
891:
886:
881:
876:
871:
866:
856:
853:
852:
851:
841:
836:
831:
818:
813:
808:
802:
797:
792:
787:
782:
777:
772:
767:
757:Main article:
754:
751:
750:
749:
743:
738:
733:
731:Akka (toolkit)
724:
721:
716:
711:
706:
701:
691:
682:
671:Main article:
668:
665:
664:
663:
658:
653:
634:Main article:
631:
628:
627:
626:
621:
616:
611:
608:
603:
598:
588:
578:Main article:
575:
572:
571:
570:
565:
560:
555:
550:
540:
535:
529:
524:
516:
511:
506:
501:
496:
491:
486:
481:
476:
466:Main article:
463:
460:
459:
458:
453:
448:
443:
438:
433:
428:
421:
416:
411:
406:
401:
396:
391:
386:
376:Main article:
373:
372:Multi-threaded
370:
369:
368:
363:
358:
348:Main article:
345:
342:
341:
340:
335:
330:
325:
315:Main article:
312:
309:
308:
307:
302:
297:
292:
287:
282:
277:
272:
267:
262:
257:
247:Main article:
244:
241:
240:
239:
234:
228:
223:
218:
213:
195:
192:
191:
190:
185:
180:
174:
169:
164:
159:
154:
149:
139:Main article:
136:
133:
132:
131:
126:
121:
115:
109:
103:
97:
91:
85:
75:Main article:
72:
69:
68:
67:
64:
59:
56:
49:
46:
9:
6:
4:
3:
2:
1099:
1088:
1085:
1083:
1080:
1079:
1077:
1056:
1050:
1044:
1043:
1039:
1034:
1020:
1016:
1010:
1004:
999:
985:
981:
975:
967:
961:
957:
956:
948:
944:
934:
931:
929:
926:
924:
921:
920:
912:
909:
906:
903:
900:
897:
895:
892:
890:
887:
885:
882:
880:
877:
875:
874:Apache Hadoop
872:
870:
867:
865:
862:
861:
860:
850:
846:
842:
840:
837:
835:
832:
830:
826:
822:
819:
817:
814:
812:
809:
806:
803:
801:
798:
796:
793:
791:
788:
786:
783:
781:
778:
776:
773:
771:
768:
766:
763:
762:
760:
747:
744:
742:
739:
737:
734:
732:
728:
725:
722:
720:
717:
715:
712:
710:
707:
705:
702:
699:
695:
692:
690:
686:
683:
680:
677:
676:
674:
662:
659:
657:
654:
651:
647:
643:
640:
639:
637:
625:
622:
620:
617:
615:
612:
609:
607:
604:
602:
599:
596:
592:
589:
587:
584:
583:
581:
569:
566:
564:
561:
559:
556:
554:
551:
548:
547:join-calculus
544:
541:
539:
536:
533:
530:
528:
525:
523:
520:
517:
515:
512:
510:
507:
505:
502:
500:
497:
495:
492:
490:
487:
485:
482:
480:
477:
475:
472:
471:
469:
457:
454:
452:
449:
447:
444:
442:
439:
437:
434:
432:
429:
426:
422:
420:
417:
415:
412:
410:
407:
405:
402:
400:
397:
395:
392:
390:
387:
385:
382:
381:
379:
367:
364:
362:
359:
357:
354:
353:
351:
344:Monitor-based
339:
336:
334:
331:
329:
326:
324:
321:
320:
318:
306:
303:
301:
298:
296:
293:
291:
288:
286:
283:
281:
278:
276:
273:
271:
268:
266:
263:
261:
260:Concurrent ML
258:
256:
253:
252:
250:
238:
235:
232:
229:
227:
224:
222:
221:SystemVerilog
219:
217:
214:
211:
208:
207:
205:
201:
189:
186:
184:
181:
178:
175:
173:
170:
168:
165:
163:
160:
158:
155:
153:
150:
148:
145:
144:
142:
130:
127:
125:
122:
119:
116:
113:
110:
107:
104:
101:
98:
95:
92:
89:
86:
84:
81:
80:
78:
65:
63:
60:
57:
55:
52:
51:
45:
42:
40:
35:
31:
27:
23:
19:
1058:. Retrieved
1049:
1041:
1033:
1022:. Retrieved
1018:
1009:
998:
987:. Retrieved
983:
974:
954:
947:
879:Apache Spark
869:Apache Flink
858:
43:
15:
864:Apache Beam
839:SuperPascal
829:pi-calculus
673:Actor model
667:Actor model
650:pi-calculus
231:Verilog-AMS
1076:Categories
1024:2022-10-11
989:2022-10-11
939:References
494:TypeScript
489:JavaScript
1060:10 August
811:Newsqueak
753:CSP-based
736:Smalltalk
696:(runs on
661:Smalltalk
543:Join Java
456:SequenceL
394:Cilk Plus
305:SequenceL
300:MultiLisp
66:Millipede
1038:Alan Kay
917:See also
894:OpenHMPP
780:FortranM
741:Akka.NET
689:Isolates
687:- using
642:Ateji PX
610:Titanium
601:Fortress
558:ParaSail
446:ParaSail
22:paradigm
821:Occam-π
770:Crystal
746:LabVIEW
595:Fortran
553:LabVIEW
532:Fortran
527:Emerald
504:Charm++
499:C++ AMP
441:LabVIEW
419:Emerald
409:Clojure
366:Emerald
338:Mercury
290:Haskell
280:Futhark
255:Clojure
226:Verilog
216:SystemC
210:Esterel
183:Sequoia
152:Emerald
100:LabVIEW
962:
899:OpenMP
889:OpenCL
795:JoCaml
704:Erlang
694:Elixir
586:Chapel
563:Python
519:Eiffel
427:model.
333:Prolog
328:Parlog
275:Erlang
265:Elixir
157:Hermes
118:Signal
112:Preesm
106:Lustre
58:Glenda
845:Occam
834:PyCSP
825:Occam
816:Occam
805:Limbo
800:Joyce
727:Scala
723:SALSA
714:Janus
285:Gleam
167:Limbo
162:Julia
147:Bloom
129:BMDFM
124:SISAL
94:Joule
1062:2018
960:ISBN
911:SYCL
884:CUDA
849:XMOS
790:JCSP
775:Ease
765:Alef
698:BEAM
685:Dart
679:Axum
656:Rust
646:Java
568:Ruby
538:Java
509:Cind
451:Rust
436:Java
425:PRAM
399:Cind
389:Cilk
237:VHDL
202:and
32:. A
719:Red
624:ZPL
619:X10
474:Ada
270:Elm
172:MPD
83:CAL
1078::
1017:.
982:.
785:Go
484:C#
479:C*
431:Go
404:C#
384:C=
295:Id
188:SR
177:Oz
1064:.
1027:.
992:.
968:.
729:/
652:.
549:.
88:E
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.