Skip to main content
Log in

Control and data driven execution of logic programs: A comparison

  • Published:
International Journal of Parallel Programming Aims and scope Submit manuscript

Abstract

In this paper we examine two methods for controlling the execution of parallel logic programs. Specifically, we compare control driven execution of PRISM programs vs. data driven execution of Concurrent Prolog. Given a PRISM program we present several automatic transformations for deriving a Concurrent Prolog program whose execution is isomorphic to the original program. Although in many specific cases we may be able to write very natural specifications based on read-only variable and commit constructs, in general it is difficult to simulate control flow naturally using a transformation based on these constructs. Since control flow primitives are shown to have a simple and efficient implementation it seems that both data-flow and control-flow mechanisms are desirable for a general purpose parallel logic programming language. Subsequently, we propose a simple low level language to implement both PRISM nested control flow and Concurrent Prolog read-only variables. The idea is to convert the control/data dependencies into simple event scripts and then use existing methods to implement these scripts efficiently. Finally, we introduce a data structure that supports an efficient implementation of PRISM nested control flow.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. S. Kasif, Analysis of Parallelism in Logic Programs, Ph.D. Thesis, Computer Science Dept., University of Maryland., (1984).

  2. R. A. Kowalski,Logic for Problem Solving, North-Holland, (1979).

  3. S. Kasif, A Note on Translating Flowchart and Recursive Schemas to Prolog Schemas, TR-1273, Department of Computer Science, University of Maryland, College Park, Maryland, (May 1983).

    Google Scholar 

  4. S. Kasif, M. Kohli, and J. Minker, PRISM—A Parallel Inference System Based on Logic, Technical Report TR-1243, Computer Science Department, University of Maryland, (February 1983).

  5. C. Rieger, R. Trigg, and R. Bane, ZMOB: A New Computing Engine for AI,Proc. of IJCAI-81, Vancouver (also University of Maryland CS TR-1028), (August 1981).

  6. E. Y. Shapiro, A Subset of Concurrent Prolog and Its Interpreter, TR-003,ICOT, (1983).

  7. K. Clark and S. Gregory, PARLOG: Parallel Programming in Logic,ACM TOPLAS 8(1) (January 1986).

  8. M. J. Wise A Parallel Prolog: The Construction of A Data Driven Model,ACM Symp. on LISP and Functional Programming, Pittsburgh, (August 1982).

  9. K. Ueda, Guarded Horn Clauses, TR-103, ICOT, Japan, (1985).

  10. K. L. Clark and F. McCabe, IC-Prolog Language Features, inLogic Programming, K. L. Clark and S. A. Tarnlund, eds. Academic Press, London, pp. 253–267 (1982).

    Google Scholar 

  11. S. Kasif, M. Kohli, and J. Minker, Control Facilities of PRISM—A Parallel Inference System Based on Logic,Proc. of the Int. Joint Conf. on Artificial Intelligence, (August 1983).

  12. Mark, Giuliano, Madhur Kohli, Jack Minker, Arcot Rajasekar, and Deepak Sherlekar, Parallel Logic Programming in PRISM: Initial Experimental Work, Technical Report, Department of Computer Science, University of Maryland, College Park, (1985).

    Google Scholar 

  13. Paul H. Morris, A Dataflow Interpreter for Logic Programs,Proc. of the First Workshop on Logic Programming, pp. 148–159, (1980).

  14. M. H. van Emden and G. J. de Lucena, Predicate Logic as a Programming Language for Parallel Programming, inLogic Programming, K. L. Clark and S. A. Tarnlund, eds., Academic Press, (1982).

  15. K. L. Clark and S. Gregory, A Relational Programming Language for Parallel Programming, Research Report, Imperial College, (July 1981).

  16. K. Ueda, Concurrent Prolog Re-examined, TR-102,ICOT, Japan, (1984).

  17. V. A. Saraswat, Problems with Concurrent Prolog, CMU Technical Report, (June 1985).

  18. P. C. Treleaven, D. R. Brownbridge, and R. P. Hopkins, Data-Driven and Demand-Driven Computer Architecture,Computing Surveys 14(1): 93–143 (March 1982).

    Google Scholar 

  19. A. J. Kusalik, Process Serialization in a Concurrent Prolog,New Generation Computing 2(3): 289–298 (1984).

    Google Scholar 

  20. S. Gregory, Design, Application and Implementation of a Parallel Logic Programming Language, Ph. D. Thesis, Imperial College, London, (1985).

    Google Scholar 

  21. J. E. Hopcroft and J. D. Ullman,Introduction to Automata Theory, Languages and Computation, Addison-Wesley, Reading Massachusetts, (1979).

    Google Scholar 

  22. L. M. Pereira and L. F. Monteiro, The Semantics of Parallelism and Coroutining in Logic Programming, Report 2/80, Departmento de Informatica, Universidade Nova de Lisboa, (January 1978).

  23. A. Reuveni, The Event Based Language and Its Multiple Processor Implementations, Ph. D. Thesis, MIT/LCS/TR-226, (January 1980).

  24. J. D. Ullman, NP-Complete Scheduling Problems,JCSS 10:384–393, (1975).

    Google Scholar 

  25. M. R. Garey and D. S. Johnson,Computers and Intractability: A Guide to NP-completeness, Freeman and Company, San Francisco, (1979).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Kasif, S. Control and data driven execution of logic programs: A comparison. Int J Parallel Prog 15, 73–99 (1986). https://doi.org/10.1007/BF01379150

Download citation

  • Received:

  • Revised:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF01379150

Key Words

Navigation