Knowledge (XXG)

Concurrent logic programming

Source đź“ť

182:
applications. The choice of concurrent logic programming as the “missing link” between the hardware and the applications was influenced by a visit to the FGCS Project in 1982 by Ehud Shapiro, who invented Concurrent Prolog.
348: 135:
of the chosen clause. These subgoals can also be executed in parallel. Thus concurrent logic programming implements a form of "don't care nondeterminism", rather than "don't know nondeterminism".
254: 318: 267: 417: 352: 171: 247: 481: 831: 693: 192: 837: 240: 1022: 770: 225: 490: 862: 542: 486: 144: 722: 595: 526: 461: 384: 106: 1083: 900: 663: 293: 678: 668: 446: 1062: 1042: 972: 915: 877: 867: 752: 688: 658: 585: 574: 471: 451: 426: 389: 202: 1017: 780: 747: 642: 618: 580: 560: 456: 365: 343: 328: 162:
The development of concurrent logic programming was given an impetus when Guarded Horn Clause was used to implement
1088: 964: 950: 857: 817: 742: 648: 628: 495: 374: 308: 1057: 822: 732: 712: 698: 167: 1037: 997: 940: 872: 610: 441: 1047: 1027: 968: 955: 935: 762: 499: 403: 361: 179: 1007: 982: 976: 920: 882: 570: 565: 517: 412: 313: 285: 276: 909: 905: 847: 799: 369: 156: 121: 1052: 1032: 992: 794: 653: 522: 509: 263: 224:. Proceedings of the 1981 conference on Functional programming languages and computer architecture. 987: 925: 737: 717: 703: 435: 303: 298: 215: 804: 757: 727: 673: 532: 431: 323: 232: 175: 148: 960: 852: 707: 683: 623: 590: 552: 537: 476: 197: 65: 20: 842: 774: 638: 379: 892: 766: 632: 333: 944: 600: 466: 1077: 930: 152: 24: 812: 143:
The first concurrent logic programming language was the Relational Language of
75:
Declaratively, guarded Horn clauses are read as ordinary logical implications:
219: 124:
is made to one of the clauses, and execution proceeds with the subgoals
101:
However, procedurally, when there are several clauses whose heads
236: 163: 105:
match a given goal, then all of the clauses are executed in
151:. Later versions of concurrent logic programming include 120:
hold. If the guards of more than one clause hold, then a
170:. The FGCS Project was a $ 400M initiative by Japan's 1006: 891: 793: 609: 551: 508: 411: 402: 342: 284: 275: 221:A relational language for parallel programming 248: 8: 172:Ministry of International Trade and Industry 147:and Steve Gregory, which was an offshoot of 408: 281: 255: 241: 233: 166:, the systems programming language of the 319:Programming in the large and in the small 159:and Ueda's Guarded Horn Clause language. 168:Japanese Fifth Generation Project (FGCS) 193:Concurrent constraint logic programming 23:in which programs are sets of guarded 7: 226:Association for Computing Machinery 174:, begun in 1982, to use massively 14: 109:, checking whether their guards 863:Partitioned global address space 1: 72:is the commitment operator. 390:Uniform Function Call Syntax 203:Nondeterministic programming 17:Concurrent logic programming 858:Parallel programming models 832:Concurrent constraint logic 1105: 951:Metalinguistic abstraction 818:Automatic mutual exclusion 823:Choreographic programming 218:; Gregory, Steve (1981). 873:Relativistic programming 180:artificial intelligence 883:Structured concurrency 268:Comparison by language 1084:Programming paradigms 848:Multitier programming 664:Interface description 264:Programming paradigms 216:Clark, Keith Leonard 988:Self-modifying code 596:Probabilistic logic 527:Functional reactive 482:Expression-oriented 436:Partial application 228:. pp. 171–178. 68:of the clause, and 901:Attribute-oriented 674:List comprehension 619:Algebraic modeling 432:Anonymous function 324:Design by contract 294:Jackson structures 176:parallel computing 1089:Logic programming 1071: 1070: 961:Program synthesis 853:Organic computing 789: 788: 694:Non-English-based 669:Language-oriented 447:Purely functional 398: 397: 198:Logic programming 157:Concurrent Prolog 21:logic programming 1096: 973:by demonstration 878:Service-oriented 868:Process-oriented 843:Macroprogramming 828:Concurrent logic 699:Page description 689:Natural language 659:Grammar-oriented 586:Nondeterministic 575:Constraint logic 477:Point-free style 472:Functional logic 409: 380:Immutable object 299:Block-structured 282: 257: 250: 243: 234: 229: 178:/processing for 134: 122:committed choice 119: 104: 97: 71: 63: 53:The conjunction 49: 19:is a variant of 1104: 1103: 1099: 1098: 1097: 1095: 1094: 1093: 1074: 1073: 1072: 1067: 1009: 1002: 893:Metaprogramming 887: 803: 798: 785: 767:Graph rewriting 605: 581:Inductive logic 561:Abductive logic 547: 504: 467:Dependent types 415: 394: 366:Prototype-based 346: 344:Object-oriented 338: 334:Nested function 329:Invariant-based 271: 261: 214: 211: 189: 141: 133: 129: 125: 118: 114: 110: 102: 95: 91: 87: 83: 79: 69: 62: 58: 54: 47: 43: 39: 35: 31: 12: 11: 5: 1102: 1100: 1092: 1091: 1086: 1076: 1075: 1069: 1068: 1066: 1065: 1060: 1055: 1050: 1045: 1040: 1035: 1030: 1025: 1020: 1014: 1012: 1004: 1003: 1001: 1000: 995: 990: 985: 980: 958: 953: 948: 938: 933: 928: 923: 918: 913: 903: 897: 895: 889: 888: 886: 885: 880: 875: 870: 865: 860: 855: 850: 845: 840: 835: 825: 820: 815: 809: 807: 791: 790: 787: 786: 784: 783: 778: 763:Transformation 760: 755: 750: 745: 740: 735: 730: 725: 720: 715: 710: 701: 696: 691: 686: 681: 676: 671: 666: 661: 656: 651: 649:Differentiable 646: 636: 629:Automata-based 626: 621: 615: 613: 607: 606: 604: 603: 598: 593: 588: 583: 578: 568: 563: 557: 555: 549: 548: 546: 545: 540: 535: 530: 520: 514: 512: 506: 505: 503: 502: 496:Function-level 493: 484: 479: 474: 469: 464: 459: 454: 449: 444: 439: 429: 423: 421: 406: 400: 399: 396: 395: 393: 392: 387: 382: 377: 372: 358: 356: 340: 339: 337: 336: 331: 326: 321: 316: 311: 309:Non-structured 306: 301: 296: 290: 288: 279: 273: 272: 262: 260: 259: 252: 245: 237: 231: 230: 210: 207: 206: 205: 200: 195: 188: 185: 145:Keith L. Clark 140: 137: 131: 127: 116: 112: 99: 98: 93: 89: 85: 81: 64:is called the 60: 56: 51: 50: 45: 41: 37: 33: 13: 10: 9: 6: 4: 3: 2: 1101: 1090: 1087: 1085: 1082: 1081: 1079: 1064: 1061: 1059: 1056: 1054: 1051: 1049: 1046: 1044: 1041: 1039: 1036: 1034: 1033:Data-oriented 1031: 1029: 1026: 1024: 1021: 1019: 1016: 1015: 1013: 1011: 1005: 999: 996: 994: 991: 989: 986: 984: 981: 978: 974: 970: 966: 962: 959: 957: 954: 952: 949: 946: 942: 939: 937: 934: 932: 931:Homoiconicity 929: 927: 924: 922: 919: 917: 914: 911: 907: 904: 902: 899: 898: 896: 894: 890: 884: 881: 879: 876: 874: 871: 869: 866: 864: 861: 859: 856: 854: 851: 849: 846: 844: 841: 839: 838:Concurrent OO 836: 833: 829: 826: 824: 821: 819: 816: 814: 811: 810: 808: 806: 801: 796: 792: 782: 779: 776: 772: 768: 764: 761: 759: 756: 754: 751: 749: 746: 744: 741: 739: 736: 734: 733:Set-theoretic 731: 729: 726: 724: 721: 719: 716: 714: 713:Probabilistic 711: 709: 705: 702: 700: 697: 695: 692: 690: 687: 685: 682: 680: 677: 675: 672: 670: 667: 665: 662: 660: 657: 655: 652: 650: 647: 644: 640: 637: 634: 630: 627: 625: 622: 620: 617: 616: 614: 612: 608: 602: 599: 597: 594: 592: 589: 587: 584: 582: 579: 576: 572: 569: 567: 564: 562: 559: 558: 556: 554: 550: 544: 541: 539: 536: 534: 531: 528: 524: 521: 519: 516: 515: 513: 511: 507: 501: 497: 494: 492: 491:Concatenative 488: 485: 483: 480: 478: 475: 473: 470: 468: 465: 463: 460: 458: 455: 453: 450: 448: 445: 443: 440: 437: 433: 430: 428: 425: 424: 422: 419: 414: 410: 407: 405: 401: 391: 388: 386: 383: 381: 378: 376: 373: 371: 367: 363: 360: 359: 357: 354: 350: 345: 341: 335: 332: 330: 327: 325: 322: 320: 317: 315: 312: 310: 307: 305: 302: 300: 297: 295: 292: 291: 289: 287: 283: 280: 278: 274: 269: 265: 258: 253: 251: 246: 244: 239: 238: 235: 227: 223: 222: 217: 213: 212: 208: 204: 201: 199: 196: 194: 191: 190: 186: 184: 181: 177: 173: 169: 165: 160: 158: 154: 150: 146: 138: 136: 123: 108: 78: 77: 76: 73: 67: 30: 29: 28: 27:of the form: 26: 22: 18: 1038:Event-driven 827: 442:Higher-order 370:Object-based 220: 161: 153:Ehud Shapiro 142: 100: 74: 52: 25:Horn clauses 16: 15: 1048:Intentional 1028:Data-driven 1010:of concerns 969:Inferential 956:Multi-stage 936:Interactive 813:Actor-based 800:distributed 743:Stack-based 543:Synchronous 500:Value-level 487:Applicative 404:Declarative 362:Class-based 92:and … and B 84:and … and G 32:H :- G 1078:Categories 1023:Components 1008:Separation 983:Reflective 977:by example 921:Extensible 795:Concurrent 771:Production 758:Templating 738:Simulation 723:Scientific 643:Spacecraft 571:Constraint 566:Answer set 518:Flow-based 418:comparison 413:Functional 385:Persistent 349:comparison 314:Procedural 286:Structured 277:Imperative 209:References 910:Inductive 906:Automatic 728:Scripting 427:Recursive 149:IC-Prolog 1063:Subjects 1053:Literate 1043:Features 998:Template 993:Symbolic 965:Bayesian 945:Hygienic 805:parallel 684:Modeling 679:Low-code 654:End-user 591:Ontology 523:Reactive 510:Dataflow 187:See also 107:parallel 1018:Aspects 926:Generic 916:Dynamic 775:Pattern 753:Tactile 718:Quantum 708:filters 639:Command 538:Streams 533:Signals 304:Modular 139:History 115:, … , G 59:, … , G 781:Visual 748:System 633:Action 457:Strict 130:, …, B 80:H if G 44:, …, B 36:, …, G 1058:Roles 941:Macro 704:Pipes 624:Array 601:Query 553:Logic 462:GADTs 452:Total 375:Agent 88:and B 66:guard 706:and 353:list 611:DSL 164:KL1 155:'s 40:| B 1080:: 975:, 971:, 967:, 773:, 769:, 498:, 489:, 368:, 364:, 351:, 979:) 963:( 947:) 943:( 912:) 908:( 834:) 830:( 802:, 797:, 777:) 765:( 645:) 641:( 635:) 631:( 577:) 573:( 529:) 525:( 438:) 434:( 420:) 416:( 355:) 347:( 270:) 266:( 256:e 249:t 242:v 132:n 128:1 126:B 117:n 113:1 111:G 103:H 96:. 94:n 90:1 86:n 82:1 70:| 61:n 57:1 55:G 48:. 46:n 42:1 38:n 34:1

Index

logic programming
Horn clauses
guard
parallel
committed choice
Keith L. Clark
IC-Prolog
Ehud Shapiro
Concurrent Prolog
KL1
Japanese Fifth Generation Project (FGCS)
Ministry of International Trade and Industry
parallel computing
artificial intelligence
Concurrent constraint logic programming
Logic programming
Nondeterministic programming
Clark, Keith Leonard
A relational language for parallel programming
Association for Computing Machinery
v
t
e
Programming paradigms
Comparison by language
Imperative
Structured
Jackson structures
Block-structured
Modular

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

↑