Skip to main content

Prolog with arrays and bounded quantifications

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 698))

Abstract

It is proposed to add bounded quantifications to Prolog. The main reason is one of natural expression, many algorithms are expressed more elegantly in a declarative way using bounded quantifications than using existing means, i.e., recursion. In particular this is true for numerical algorithms, an area where Prolog has been virtually unsuccessful so far. Moreover, bounded quantification has been found to be at least as efficient as recursion, when applicable. We outline an implementation of bounded quantification through an extension of Warren's abstract Prolog machine and give performance figures relative to recursion. Finally, we have shown elsewhere that bounded quantification has a high potential for parallel implementation. One can often run the same program on a sequential computer and on several kinds of parallel computers.

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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Anderson, S. and Hudak, P., Compilation of Haskell Array Comprehensions for Scientific Computing, in: Proc. SIGPLAN '90 Conf. on Programming Language Design and Implementation, ACM Press, New York, N.Y., 1990.

    Google Scholar 

  2. Arro, H., Barklund, J. and Bevemyr, J., Parallel Bounded Quantifications— Preliminary Results, UPMAIL Tech. Rep. 74, Comp. Sci. Dept., Uppsala Univ., Uppsala, 1993, to appear in SIGPLAN Notices.

    Google Scholar 

  3. Barklund, J. and Bevemyr, J., Executing Bounded Quantifications on Shared Memory Multiprocessors, submitted to PLILP'93, 1993.

    Google Scholar 

  4. Barklund, J. and Bevemyr, J., Prolog with Arrays and Bounded Quantifications, UPMAIL Tech. Rep. 77, Comp. Sci. Dept., Uppsala Univ., Uppsala, 1993.

    Google Scholar 

  5. Barklund, J. and Millroth, H., Integrating Complex Data Structures in Prolog, in: S. Haridi (ed.), Proc. 1987 Symp. on Logic Programming, Comp. Soc. Press of the IEEE, Washington, D.C., 1987.

    Google Scholar 

  6. Barklund, J. and Millroth, H., Providing Concurrency and Iteration in Logic Programming through Bounded Quantifications, in: H. Tanaka (ed.), Proc. Intl. Conf. on Fifth Generation Computer Systems 1992, Ohmsha, Tokyo, 1992.

    Google Scholar 

  7. Bevemyr, J., The Luther WAM Emulator, UPMAIL Tech. Rep. 72, Comp. Sci. Dept., Uppsala Univ., Uppsala, 1992.

    Google Scholar 

  8. Dovier, A., Omodeo, E. G., Pontelli, E. and Rossi, G., log: a Logic Programming Language with Finite Sets, in: K. Furukawa (ed.), Proc. Intl. Conf. on Logic Programming 1991, MIT Press, Cambridge, Mass., 1991.

    Google Scholar 

  9. Eriksson, L.-H. and Rayner, M., Incorporating Mutable Arrays into Logic Programming, in: S.-Å. Tärnlund (ed.), Proc. 2nd Intl. Logic Programming Conf., Uppsala University, 1984.

    Google Scholar 

  10. Gries, D., The Science of Programming, Springer-Verlag, New York., 1981.

    Google Scholar 

  11. Hill, P. M. and Lloyd, J. W., The Gödel Report, Technical Report 91-02, Comp. Sci. Dept., Univ. of Bristol, Bristol, 1991.

    Google Scholar 

  12. Lloyd, J. W. and Topor, R. W., Making Prolog more Expressive, J. Logic Programming, 1:225–240 (1984).

    Article  Google Scholar 

  13. Meier, M., Recursion vs. Iteration in Prolog, in: K. Furukawa (ed.), Logic Programming—Proc. Eighth Intl. Conf., MIT Press, Cambridge, Mass., 1991.

    Google Scholar 

  14. Metcalf, M. and Reid, J., Fortran 90 Explained, Oxford Univ. Press, Oxford, 1990.

    Google Scholar 

  15. Millroth, H., Reforming Compilation of Logic Programs, Ph.D. Thesis, Comp. Sci. Dept., Uppsala Univ., Uppsala, 1990.

    Google Scholar 

  16. Sato, T. and Tamaki, H., First Order Compiler: a Deterministic Logic Program Synthesis Algorithm, J. Symbolic Computation, 8:605–627 (1989).

    MathSciNet  Google Scholar 

  17. Schwartz, J. T., Devar, R. B. K., Dubinski, E. and Schonberg, E., Programming with Sets: an Introduction to SETL, Springer-Verlag, Berlin, 1986.

    Google Scholar 

  18. Tennent, R. D., Quantification in Algol-like Languages, Information Processing Letters, 25:133–137 (1987).

    Article  MathSciNet  Google Scholar 

  19. Tennent, R. D., Semantics of Programming Languages, Prentice-Hall International, Hemel Hempstead, 1991.

    Google Scholar 

  20. Voronkov, A., Logic Programming with Bounded Quantifiers, in: A. Voronkov (ed.), Logic Programming—Proc. Second Russian Conf. on Logic Programming, LNCS 592, Springer-Verlag, Berlin, 1992.

    Google Scholar 

  21. Voronkov, A. A., Logic Programming with Bounded Quantifiers, Technical Report ECRC-92-29, ECRC, Munich, 1992.

    Google Scholar 

  22. Warren, D. H. D., An Abstract Prolog Instruction Set, SRI Tech. Note 309, SRI Intl., Menlo Park, Calif., 1983.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Andrei Voronkov

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Barklund, J., Bevemyr, J. (1993). Prolog with arrays and bounded quantifications. In: Voronkov, A. (eds) Logic Programming and Automated Reasoning. LPAR 1993. Lecture Notes in Computer Science, vol 698. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-56944-8_39

Download citation

  • DOI: https://doi.org/10.1007/3-540-56944-8_39

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-56944-2

  • Online ISBN: 978-3-540-47830-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics