Knowledge

List of concurrent and parallel programming languages

Source 📝

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

Index

parallel programming languages
paradigm
synchronization
execution model
concurrent programming language
execution model
CnC (Concurrent Collections)
Linda coordination language
Dataflow programming
CAL
E
Joule
LabVIEW
Lustre
Preesm
Signal
SISAL
BMDFM
Distributed computing
Bloom
Emerald
Hermes
Julia
Limbo
MPD
Oz
Sequoia
SR
Event-driven programming
Hardware Description Language

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.