Skip to main content

An abstract machine for restricted AND-parallel execution of logic programs

Session 1a: Parallel Implementations

Part of the Lecture Notes in Computer Science book series (LNCS,volume 225)


Although the sequential execution speed of logic programs has been greatly improved by the concepts introduced in the Warren Abstract Machine (WAM), parallel execution represents the only way to increase this speed beyond the natural limits of sequential systems. However, most proposed parallel logic programming execution models lack the performance optimizations and storage efficiency of sequential systems. This paper presents a parallel abstract machine which is an extension of the WAM and is thus capable of supporting AND-Parallelism without giving up the optimizations present in sequential implementations. A suitable instruction set, which can be used as a target by a variety of logic programming languages, is also included. Special instructions are provided to support a generalized version of "Restricted AND-Parallelism" (RAP), a technique which reduces the overhead traditionally associated with the run-time management of variable binding conflicts to a series of simple run-time checks, which select one out of a series of compiled execution graphs.


  • Logic programming
  • Parallel processing
  • Warren abstract machine
  • Restricted and-parallelism
  • Prolog

This is a preview of subscription content, access via your institution.

Buying options

USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/3-540-16492-8_62
  • Chapter length: 15 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD   99.00
Price excludes VAT (USA)


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. J.H. Chang, A. M. Despain, and D. DeGroot. AND-parallelism of Logic Programs Based on Static Data Dependency Analysis. In Digest of Papers of COMPCON Spring '85, pages 218–225. 1985.

    Google Scholar 

  2. K. Clark and S. Gregory. PARLOG: A Parallel Logic Programming Language. Research Report DOC 83/5, Dept. of Computing, Imperial College of Science and Technology, May, 1983. University of London.

    Google Scholar 

  3. Clark, K.L. and G. McCabe. The Control Facilities of IC-Prolog. Expert Systems in the Micro Electronic Age. Edinburgh University Press, 1979.

    Google Scholar 

  4. J.S. Conery and D.F. Kibler. Parallel Interpretation of Logic Programs. In Proc. of the ACM Conference on Functional Programming Languages and Computer Architecture., pages 163–170. October, 1981.

    Google Scholar 

  5. J.S. Conery. The AND/OR Process Model for Parallel Interpretation of Logic Programs. PhD thesis, The University of California at Irvine, 1983. Technical Report 204.

    Google Scholar 

  6. Doug DeGroot. Restricted And-Parallelism. Int'l Conf. on Fifth Generation Computer Systems, November, 1984.

    Google Scholar 

  7. T. P. Dobry, A. M. Despain, and Y. N. Patt. Performance Studies of a Prolog Machine Architecture. In Proceedings of the 12 Int'l. Symp. on Computer Architecture, pages 180–191. IEEE Computer Society Press, 1985.

    Google Scholar 

  8. John Gabriel, Tim Lindholm, E. L. Lusk, and R. A. Overbeek. A Tutorial on the Warren Abstract Machine. Technical Report, Argonne National Laboratory, Argonne, Ill. 60439, 1985.

    Google Scholar 

  9. Manuel V. Hermenegildo. A Restricted AND-parallel Execution Model and Abstract Machine for Prolog Programs. Technical Report PP-104-85, Microelectronics and Computer Technology Corporation (MCC), Austin, TX 78759, 1985.

    Google Scholar 

  10. Manuel V. Hermenegildo and Roger I. Nasr. Efficient Implementation of Backtracking in AND-parallelism. In Proceedings of the 3rd. Int'l. Conf. on Logic Programming. Springer-Verlag, 1986.

    Google Scholar 

  11. Kowalski, R.A. Predicate Logic as a Programming Language. Proc. IFIPS 74, 1974.

    Google Scholar 

  12. R. A. Overbeek, J. Gabriel, T. Lindholm, and E. L. Lusk. Prolog on Multiprocessors. Technical Report, Argonne National Laboratory, Argonne, Ill. 60439, 1985.

    Google Scholar 

  13. Luis M. Pereira and Roger I. Nasr. Delta-Prolog: A Distributed Logic Programming Language. In Proceedings of the Intl. Conf. on 5th. Gen. Computer Systems. 1984. Japan.

    Google Scholar 

  14. Pereira, L.M., F. C. N. Pereira, and D. H. D. Warren. User's Guide to DECsystem-10 Prolog Dept. of Artificial Intelligence, Univ. of Edinburgh, 1978.

    Google Scholar 

  15. E. Y. Shapiro. A subset of Concurrent Prolog and its interpreter. Technical Report TR-003, ICOT, January, 1983. Tokyo.

    Google Scholar 

  16. E. Tick and D.H.D. Warren. Towards a Pipelined Prolog Processor. In 1984 International Symposium on Logic Programming, Atlantic City, pages 29–42. IEEE Computer Society Press, Silver Spring, MD, February, 1984.

    Google Scholar 

  17. David H. D. Warren. An Abstract Prolog Instruction Set. Technical Note 309, SRI International, AI Center, Computer Science and Technology Division, 1983.

    Google Scholar 

Download references

Author information

Authors and Affiliations


Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 1986 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hermenegildo, M.V. (1986). An abstract machine for restricted AND-parallel execution of logic programs. In: Shapiro, E. (eds) Third International Conference on Logic Programming. ICLP 1986. Lecture Notes in Computer Science, vol 225. Springer, Berlin, Heidelberg.

Download citation

  • DOI:

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-16492-0

  • Online ISBN: 978-3-540-39831-8

  • eBook Packages: Springer Book Archive