New Generation Computing

, Volume 3, Issue 1, pp 43–70 | Cite as

AND parallelism and nondeterminism in logic programs

  • John S. Conery
  • Dennis F. Kibler
Regular Papers


This paper defines an abstract interpreter for logic programs based on a system of asynchronous, independent processors which communicate only by passing messages. Each logic program is automatically partitioned and its pieces distributed to available processors. This approach permits two distinct forms of parallelism. OR parallelism arises from evaluating nondeterministic choices simultaneously. AND parallelism arises when a computation involves independent, but necessary, subcomputations. Algorithms like quicksort, which follow a divide and conquer approach, usually exhibit this form of parallelism. These two forms of parallelism are conjointly achieved by the parallel interpreter.


Nondeterminism Process Model AND Parallelism OR Parallelism Intelligent Backtracking 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1).
    Conery, J. S., Morris, P. H. and Kibler, D. F., “Efficient Logic Programs: A Research Proposal,”Technical Report 166, Department of Information and Computer Science, University of California, Irvine, April, 1981.Google Scholar
  2. 2).
    Conery, J. S. and Kibler, D. F., “Parallel Interpretation of Logic Programs,”Proceedings of the Conference on Functional Programming Languages and Computer Architecture, pp. 163–170, ACM, October, 1981.Google Scholar
  3. 3).
    Conery, J. S. and Kibler, D. F., “AND Parallelism in Logic Programs.” inProceedings of the Eight International Joint Conference on Artificial Intelligence, pp. 539–543, 1983.Google Scholar
  4. 4).
    Conery, J. S., “The AND/OR Process Model for Parallel Interpretation of Logic Programs,”Ph.D. Thesis, University of California, Irvine, 1983. (Available asTech. Report 204. Department of Computer ane Information Science, UC Irvine)Google Scholar
  5. 5).
    Gostelow, K. P. and Thomas, R., “Performance of a Simulated Dataflow Computer,”IEEE Transactions on Computers, C-29(10), pp. 905–919, October, 1980.CrossRefGoogle Scholar
  6. 6).
    Warren, D. S., Ahamad, M., Debray, S. K. and Kale, L. V., “Executing Distributed Prolog Programs on a Broadcast Network.” in1984 International Symposium on Logic Programming, pp. 12–21, 1984.Google Scholar
  7. 7).
    Taylor, S., Lowry, A., Maguire, Jr., G. Q. and Stolfo, S. J., “Logic Programming Using Parallel Associative Operations,” in1984 International Symposium on Logic Programming, pp. 58–68, 1984.Google Scholar
  8. 8).
    Eisinger, N., Kasif, S. and Minker, J., “Logic Programming: A Parallel Approach,”Proceedings of the First International Programming Conference, pp. 1–8. Faculté des Sciences de Luminy, Marseille, Sept., 1982.Google Scholar
  9. 9).
    Ciepielewski, A. and Haridi, S., “Formal Models for OR-Parallel Execution of Logic Programs,”CSALAB Working Paper 821121, Royal Institurte of Technology, Stockholm, Sweden, 1982.Google Scholar
  10. 10).
    Furukawa, K., Nitta, K. and Matsumoto, Y., “Prolog Interpreter Based on Concurrent Programming“,Proceedings of the First International Logic Programming Conference, pp. 38–44. Faculté des Sciences Luminy, Marseille, Sept., 1982.Google Scholar
  11. 11).
    Kowalski, R. A., “Predicate Logic as a Programming Language,”IFIPS 74.Google Scholar
  12. 12).
    Clark, K. L. and McCabe, F., “The Control Facilities of IC-Prolog,” inExpert Systems in the Microelectronic Age (D. Michie, ed.), Edinburgh University Press, 1979.Google Scholar
  13. 13).
    Shapiro, E. Y., “A Subset of Concurrent Prolog and Its Interpreter,”ICOT Technical Report TR-003, Institute for New Generation Computer Technology, Tokyo, Japan, 1983.Google Scholar
  14. 14).
    Clark, K. L. and Gregory, S., “A Relational Language for Parallel Programming,”Proceedings of the Conference on Functional Programming Languages and Computer Architecture, pp. 171–178. ACM, October, 1981.Google Scholar
  15. 15).
    Zara, R. V., “A Semantic Model for a Language Processor,”Proceedings of the A. C. M. National Meeting, pp. 323–339, 1967.Google Scholar
  16. 16).
    Hewitt, C. and Attardi, G., “Act I for Parallel Problem Solving,”Technical Report, MIT.Google Scholar
  17. 17).
    van Emden, M. H. and Kowalski, R. A., “The Semantics of Predicate Logic as a Programming Language,”JACM, 23(4), pp. 773–742, October, 1976.Google Scholar
  18. 18).
    Pereira, L. M., Pereira, F. C. N. and Warren, D. H. D., “Users Guide to DEC system-10 Prolog,”Technical Report, Department of Artificial Intelligence, University of Edinburgh, September, 1978.Google Scholar
  19. 19).
    Wulf, W. A. and Shaw, M., “Abstraction and Verification in ALPHARD: Defining and Specifying Iteration and Generators,”CACM.20(8), pp. 553–564, August, 1977.MATHGoogle Scholar
  20. 20).
    Pereira, L. M. and Porto, A., “Intelligent Backtracking and Sidetracking in Horn Clause Programs—the Theory,”Report 2/79, Departmento de Informatica, Universidade Nova de Lisboa, Portugal, October 1979.Google Scholar

Copyright information

© Ohmsha, Ltd. and Springer 1985

Authors and Affiliations

  • John S. Conery
    • 1
  • Dennis F. Kibler
    • 2
  1. 1.Department of Computer & Information ScienceUniversity of OregonEugeneUSA
  2. 2.Department of Information & Computer ScienceUniversity of CaliforniaIrvineUSA

Personalised recommendations