Skip to main content

Simplifying Questions in Maude Declarative Debugger by Transforming Proof Trees

  • Conference paper
Logic-Based Program Synthesis and Transformation (LOPSTR 2011)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7225))

Abstract

Declarative debugging is a debugging technique that abstracts the execution details that in general may be difficult to follow in declarative languages to focus on results. It relies on a data structure representing the wrong computation, the debugging tree, which is traversed by asking questions to the user about the correctness of the computation steps related to each node. Thus, the complexity of the questions is an important factor regarding the applicability of the technique. In this paper we present a transformation for debugging trees for Maude specifications that ensures that any subterm occurring in a question has been previously replaced by the most reduced form that it has taken during the computation, thus ensuring that questions become as simple as possible.

Research supported by MEC Spanish projects DESAFIOS10 (TIN2009-14599-C03-01) and STAMP (TIN2008-06622-C03-01), Comunidad de Madrid programs PROMETIDOS (S2009/TIC1465) and PROMESAS (S-0505/TIC/0407), and UCM-BSCH-GR58/08-910502.

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 54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 72.00
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. Bouhoula, A., Jouannaud, J.-P., Meseguer, J.: Specification and proof in membership equational logic. Theoretical Computer Science 236, 35–132 (2000)

    Article  MathSciNet  MATH  Google Scholar 

  2. Caballero, R., Martí-Oliet, N., Riesco, A., Verdejo, A.: Improving the debugging of membership equational logic specifications. Technical Report SIC-02-11, Dpto. Sistemas Informáticos y Computación, Universidad Complutense de Madrid (March 2011), http://maude.sip.ucm.es/debugging/

  3. Caballero, R., Rodríguez-Artalejo, M.: DDT: A Declarative Debugging Tool for Functional-Logic Languages. In: Kameyama, Y., Stuckey, P.J. (eds.) FLOPS 2004. LNCS, vol. 2998, pp. 70–84. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  4. Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Talcott, C.: All About Maude - A High-Performance Logical Framework. LNCS, vol. 4350. Springer, Heidelberg (2007)

    MATH  Google Scholar 

  5. Davie, T., Chitil, O.: Hat-Delta: One right does make a wrong. In: 7th Symposium on Trends in Functional Programming, TFP 2006 (2006)

    Google Scholar 

  6. Eker, S.: Term rewriting with operator evaluation strategies. In: Proceedings of the 2nd International Workshop on Rewriting Logic and its Applications, WRLA 1998. Electronic Notes in Theoretical Computer Science, vol. 15, pp. 311–330 (1998)

    Google Scholar 

  7. Insa, D., Silva, J., Riesco, A.: Balancing execution trees. In: Gulías, V.M., Silva, J., Villanueva, A. (eds.) Proceedings of the 10th Spanish Workshop on Programming Languages, PROLE 2010, pp. 129–142. Ibergarceta Publicaciones (2010)

    Google Scholar 

  8. MacLarty, I.: Practical declarative debugging of Mercury programs. Master’s thesis, University of Melbourne (2005)

    Google Scholar 

  9. Meseguer, J.: Conditional rewriting logic as a unified model of concurrency. Theoretical Computer Science 96(1), 73–155 (1992)

    Article  MathSciNet  MATH  Google Scholar 

  10. Naish, L.: A declarative debugging scheme. Journal of Functional and Logic Programming 1997(3) (1997)

    Google Scholar 

  11. Nilsson, H.: How to look busy while being as lazy as ever: the implementation of a lazy functional debugger. Journal of Functional Programming 11(6), 629–671 (2001)

    Article  MathSciNet  MATH  Google Scholar 

  12. Nilsson, H., Sparud, J.: The evaluation dependence tree as a basis for lazy functional debugging. Automated Software Engineering 4, 121–150 (1997)

    Article  Google Scholar 

  13. Pope, B.: Declarative Debugging with Buddha. In: Vene, V., Uustalu, T. (eds.) AFP 2004. LNCS, vol. 3622, pp. 273–308. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  14. Riesco, A., Verdejo, A., Martí-Oliet, N., Caballero, R.: Declarative debugging of rewriting logic specifications. Journal of Logic and Algebraic Programming (2011) (to appear)

    Google Scholar 

  15. Shapiro, E.Y.: Algorithmic Program Debugging. ACM Distinguished Dissertation. MIT Press (1983)

    Google Scholar 

  16. Silva, J.: A Comparative Study of Algorithmic Debugging Strategies. In: Puebla, G. (ed.) LOPSTR 2006. LNCS, vol. 4407, pp. 143–159. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  17. Tessier, A., Ferrand, G.: Declarative Diagnosis in the CLP Scheme. In: Deransart, P., Hermenegildo, M.V., Maluszynski, J. (eds.) DiSCiPl 1999. LNCS, vol. 1870, pp. 151–174. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Caballero, R., Riesco, A., Verdejo, A., Martí-Oliet, N. (2012). Simplifying Questions in Maude Declarative Debugger by Transforming Proof Trees. In: Vidal, G. (eds) Logic-Based Program Synthesis and Transformation. LOPSTR 2011. Lecture Notes in Computer Science, vol 7225. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-32211-2_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-32211-2_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-32210-5

  • Online ISBN: 978-3-642-32211-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics