User loginNavigation 
Middle History of Logic ProgrammingResolution, Planner, Edinburgh LCF, Prolog, and the Japanese Fifth Generation Project arXiv:0904.3036 Logic Programming can be broadly defined as â€œusing logic to infer computational steps from existing propositionsâ€ (although this has been opposed by Kowalski; see below). The focus of this article is on the middle period of the development of this idea from the advent of uniform proof procedures using resolution to the Japanese Fifth Generation Project. Kowalski [1988] stated â€œLooking back on our early discoveries, I value most the discovery that computation could be subsumed by deduction.â€ According to Hewitt et. al. and contrary to Kowalski, computation in general cannot be subsumed by deduction. Hewitt and Agha [1991] and other published work argued that mathematical models of concurrency did not determine particular concurrent computations as follows: The Actor Model makes use of arbitration for determining which message is next in the arrival order of an Actor that is sent multiple messages concurrently. For example Arbiters can be used in the implementation of the arrival order of messages sent to an Actor which are subject to indeterminacy in their arrival order. Since arrival orders are in general indeterminate, they cannot be inferred from prior information by mathematical logic alone. Therefore mathematical logic cannot implement concurrent computation in open systems. Consequently, Procedural Embedding of Knowledge [Hewitt 1971] is strictly more general than Logic Programming. Over the course of history, the term â€œfunctional programmingâ€ has grown more precise and technical as the field has matured. Logic Programming should be on a similar trajectory. Accordingly, â€œLogic Programmingâ€ should have a more precise characterization, e.g., â€œthe logical inference of computational steps.â€ Kowalski's approach has been to advocate Logic Programming in terms of backwardchaining only inference building on the resolution uniform proof procedure paradigm for proving theorems. In contrast, our approach was to reject the resolution uniform proof procedure paradigm and to explore Logic Programming defined by a principled criterion, namely, â€œthe logical inference of computational stepsâ€. Note: This article is about the middle history of Logic Programming. See ArXiv:0901.4934 for conceptual development of the role of Logic Programming from its origins to the present. By Hewitt at 20110301 21:13  LtU Forum  previous forum topic  next forum topic  other blogs  10649 reads

Browse archives
Active forum topicsNew forum topics 
Recent comments
1 week 3 days ago
1 week 3 days ago
1 week 4 days ago
1 week 5 days ago
2 weeks 4 days ago
2 weeks 5 days ago
2 weeks 5 days ago
2 weeks 6 days ago
3 weeks 2 days ago
3 weeks 5 days ago