Knowledge

List of concurrent and parallel programming languages

Source 📝

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

Index

XC (programming language)
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

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