Skip to main content

Efficient Negation Using Abstract Interpretation

  • Conference paper
  • First Online:
Logic for Programming, Artificial Intelligence, and Reasoning (LPAR 2001)

Abstract

While negation has been a very active area of research in logic programming, comparatively few papers have been devoted to implementation issues. Furthermore, the negation-related capabilities of current Prolog systems are limited. We recently presented a novel method for incorporating negation in a Prolog compiler which takes a number of existing methods (some modified and improved by us) and uses them in a combined fashion. The method makes use of information provided by a global analysis of the source code. Our previous work focused on the systematic description of the techniques and the reasoning about correctness and completeness of the method, but provided no experimental evidence to evaluate the proposal. In this paper, we provide experimental data which indicates that the method is not only feasible but also quite promising from the efficiency point of view. In addition, the tests have provided new insight as to how to improve the proposal further. Abstract interpretation techniques (in particular those included in the Ciao Prolog system preprocessor) are important for the strategy to success.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. R. Barbuti, D. Mancarella, D. Pedreschi, and F. Turini. Intensional negation of logic programs. Lecture notes on Computer Science, 250:96–110, 1987.

    Google Scholar 

  2. R. Barbuti, D. Mancarella, D. Pedreschi, and F. Turini. A transformational approach to negation in logic programming. JLP, 8(3):201–228, 1990.

    Article  MathSciNet  MATH  Google Scholar 

  3. C. Braem, B. Le Charlier, S. Modart, and P. Van Hentenryck. Cardinality analysis of Prolog. In ILPS, pages 457–471. The MIT Press, 1994.

    Google Scholar 

  4. F. Bueno. The CIAO Multiparadigm Compiler: A User’s Manual, 1995.

    Google Scholar 

  5. D. Chan. Constructive negation based on the complete database. In Proc. Int. Conference on LP’88, pages 111–125. The MIT Press, 1988.

    Google Scholar 

  6. D. Chan. An extension of constructive negation and its application in coroutining. In Proc. NACLP’89, pages 477–493. The MIT Press, 1989.

    Google Scholar 

  7. K. L. Clark. Negation as failure. In J. Minker H. Gallaire, editor, Logic and Data Bases, pages 293–322, New York, NY, 1978.

    Google Scholar 

  8. M. García, K. Marriott, and P. Stuckey. Efficient analysis of constraint logic programs with dynamic scheduling. In ILPS, pages 417–431. MIT Press, 1995.

    Google Scholar 

  9. M. Hermenegildo, F. Bueno, G. Puebla, and P. López-García. Program Analysis, Debugging and Optimization Using the Ciao System Preprocessor. In 1999 ICLP, pages 52–66, Cambridge, MA, November 1999. MIT Press.

    Google Scholar 

  10. K. Kunen. Negation in logic programming. JLP, 4:289–308, 1987.

    Article  MathSciNet  MATH  Google Scholar 

  11. E. Shapiro L. Sterling. The Art of Prolog. The MIT Press, 1987.

    Google Scholar 

  12. K. Muthukumar and M. Hermenegildo. Compile-time derivation of variable dependency using abstract interpretation. JLP, 13(2/3):315–347, July 1992.

    Article  MATH  Google Scholar 

  13. L. Naish. Negation and Control in Prolog. In LNCS, number 238. Springe, 1985.

    Google Scholar 

  14. R. A. O’Keefe. The Craft of Prolog. The MIT Press, 1990.

    Google Scholar 

  15. G. Puebla, M. García, K. Marriott, and P. Stuckey. Optimization of Logic Programs with Dynamic Scheduling. In 1997 International Conference on LP, pages 93–107, Cambridge, MA, June 1997. MMIT Press.

    Google Scholar 

  16. J.J. Moreno S. Muñoz. How to incorporate negation in a prolog compiler. In V. Santos Costa E. Pontelli, editor, 2nd International Workshop PADL’2000, volume 1753 of LNCS, pages 124–140, Boston, MA (USA), 2000. Springer.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Muñoz, S., Moreno, J.J., Hermenegildo, M. (2001). Efficient Negation Using Abstract Interpretation. In: Nieuwenhuis, R., Voronkov, A. (eds) Logic for Programming, Artificial Intelligence, and Reasoning. LPAR 2001. Lecture Notes in Computer Science(), vol 2250. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45653-8_33

Download citation

  • DOI: https://doi.org/10.1007/3-540-45653-8_33

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42957-9

  • Online ISBN: 978-3-540-45653-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics