Skip to main content

A detailed algorithm testing guards over feature trees

  • Conference paper
  • First Online:
Constraint Processing (CP 1994, CP 1993)

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

Abstract

We give the detailed formulation of an algorithm testing guards over feature trees. Such an algorithm is needed in constraint logic programming with entailment-based coroutining and in concurrent constraint programming; feature-tree constraint systems model extensible record descriptions (for example, in LIFE). We call this algorithm “Beauty-and-Beast” algorithm because it uses, for each variable X and for each guard test being suspended on X, a special-purpose data structure (the “beast”) which encodes the data relevant for that guard test (essentially, a unifier). A variable X has a multiple-binding list where each of its bindings to a beast is indexed by the particular guard test. This is how we achieve that the algorithm is incremental when it is applied for repeated resumptions of suspended tests. Its online time complexity is almost-linear (which is the same as for the best existing offline algorithms for the problem). Our implementation technique of multiple-bindings is applicable to all constraint systems over trees (finite trees, rational trees, etc.); the beast construction is motivated in particular by the implementation of record-descriptions with extensible lookup-tables.

This work was done while both authors were at Digital Paris Research Laboratory. A short description appeared in [17].

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Hassan Aït-Kaci. Warren's Abstract Machine, A Tutorial Reconstruction. MIT Press, Cambridge, MA, 1991.

    Google Scholar 

  2. H. Aït-Kaci, A. Podelski, and G. Smolka. A feature-based constraint system for logic programming with entailment. In 5th FGCS, pages 1012–1022, June 1992.

    Google Scholar 

  3. H. Aït-Kaci and A. Podelski. Functions as Passive Constraints in LIFE. PRL Research Report 13. Digital Equipment Corporation, Paris Research Laboratory. Rueil-Malmaison, France, June 1991 (Revised, November 1992).

    Google Scholar 

  4. H. Aït-Kaci and A. Podelski. Entailment and disentailment of order-sorted feature constraints. In Proceedings of the Fourth International Conference on Logic Programming and Automated Reasoning, Andrei Voronkov, ed., 1993 (to appear).

    Google Scholar 

  5. Hassan Aït-Kaci, Richard Meyer, and Peter Van Roy. Wild LIFE: A User Manual (draft). Technical Note. Digital Equipment Corporation, Paris Research Laboratory. Rueil-Malmaison, France, April 1993.

    Google Scholar 

  6. M. Carlsson, J. Widèn, J. Andersson, S. Andersson, K. Boortz, H. Nilsson, and T. Sjöland. SICStus Prolog User's Manual. SICS, Box 1263, 164 28 Kista, Sweden, 1991.

    Google Scholar 

  7. A. Colmerauer, H. Kanoui, and M. V. Caneghem. Prolog, theoretical principles and current trends. Technology and Science of Informatics, 2(4):255–292, 1983.

    Google Scholar 

  8. A. Colmerauer. Equations and inequations on finite and infinite trees. In 2nd FGCS, pages 85–99, 1984.

    Google Scholar 

  9. M. Dincbas, P. Van Hentenryck, H. Simonis, A. Aggoun, T. Graf, and F. Berthier. The Constraint Logic Programming Language CHIP. In FGCS'88, pages 693–702, Tokyo, 1988.

    Google Scholar 

  10. Gerard Ellis and Peter Van Roy. Compilation of Matching in LIFE (draft). Digital Equipment Corporation, Paris Research Laboratory. Rueil-Malmaison, France, May 1992.

    Google Scholar 

  11. Seth Copen Goldstein and Peter Van Roy. Constraints, Control, and Other Ideas Concerning LIFE (draft). Digital Equipment Corporation, Paris Research Laboratory. Rueil-Malmaison, France, January 1993.

    Google Scholar 

  12. S. Haridi and S. Janson. Kernel Andorra Prolog and its computation model. In 7th ICLP, pages 31–48, MIT Press, Cambridge, June 1990.

    Google Scholar 

  13. M. Henz, G. Smolka, and J. Würtz. Oz — a programming language for multi-agent systems. In 13th IJCAI, Chambéry, France, Aug. 1993.

    Google Scholar 

  14. Peter Kursawe. How to invent a Prolog machine. In 3rd ICLP, pages 134–148. Springer-Verlag Lecture Notes on Computer Science Vol. 225, July 1986.

    Google Scholar 

  15. M. J. Maher. Logic semantics for a class of committed-choice programs. In Fourth ICLP, pages 858–876. MIT Press, 1987.

    Google Scholar 

  16. Lee Naish. MU-Prolog 3.1db Reference Manual. Computer Science Department, University of Melbourne, Melbourne, Australia, May 1984.

    Google Scholar 

  17. Andreas Podelski and Peter Van Roy. The Beauty and the Beast algorithm: Quasi-linear incremental tests of entailment and disentailment. To appear in Proceedings of the International Symposium on Logic Programming (ILPS), Ithaca, New York, November 1994. MIT Press.

    Google Scholar 

  18. Andreas Podelski and Gert Smolka. Situated Simplification. Submitted for publication.

    Google Scholar 

  19. Vitor Santos Costa, David H. D. Warren, and Rong Yang. Andorra-I: A parallel Prolog system that transparently exploits both and-and orparallelism. In Proceedings of the 3rd ACM SIGPLAN Conference on Principles and Practice of Parallel Programming, pages 83–93, August 1991.

    Google Scholar 

  20. V. Saraswat and M. Rinard. Semantic foundations of concurrent constraint programming. In 18th POPL, pages 333–351, Jan. 1991.

    Google Scholar 

  21. Ehud Shapiro. The Family of Concurrent Logic Programming Languages. In ACM Computing Surveys 21 (3), pages 412–510, Sept. 1989.

    Google Scholar 

  22. Gert Smolka. Residuation and guarded rules for constraint logic programming. PRL Research Report 12, Digital Equipment Corporation, Paris Research Laboratory, Rueil-Malmaison, France, June 1991.

    Google Scholar 

  23. G. Smolka and R. Treinen. Records for logic programming. In Proceedings of the Joint International Conference and Symposium on Logic Programming, Washington, USA, pages 240–254, 1992.

    Google Scholar 

  24. Peter Van Roy and Alvin M. Despain. High-performance logic programming with the Aquarius Prolog compiler. In IEEE Computer 25 (1), pages 54–68, Jan. 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Manfred Meyer

Rights and permissions

Reprints and permissions

Copyright information

© 1995 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Podelski, A., Van Roy, P. (1995). A detailed algorithm testing guards over feature trees. In: Meyer, M. (eds) Constraint Processing. CP CP 1994 1993. Lecture Notes in Computer Science, vol 923. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-59479-5_16

Download citation

  • DOI: https://doi.org/10.1007/3-540-59479-5_16

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-59479-6

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics