Abstract
We present a graphical tool for the declarative debugging of wrong answers in functional-logic languages. The tool, integrated in the system \(\mathcal{TOY}\), can be used to navigate a computation tree corresponding to some erroneous computation. During the navigation the users can either follow a fixed strategy or move freely providing information about the validity of the nodes as they like. We show by means of examples how this flexibility can reduce both the number and the complexity of the questions that the user must consider w.r.t. the usual top-down navigation strategy. Moreover, the tool includes some extra features that can be used to automatically simplify the computation trees.
Work partially supported by the Spanish CYCIT (project TIC2002-01167 ‘MELODIAS’).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Alpuente, M., Correa, F.J., Falaschi, M.: A Debugging Scheme for Funcional Logic Programs. Electronic Notes in Theoretical Computer Science, vol. 64. Elsevier, Amsterdam (2002)
Comini, M., Levi, G., Meo, M.C., Vitello, G.: Abstract Diagnosis. J. of Logic Programming 39, 43–93 (1999)
Cameron, M., García de la Banda, M., Marriott, K., Moulder, P.: ViMer: A Visual Debugger for Mercury. In: Proc. PPDP 2003, pp. 56–66. ACM Press, New York (2003)
Caballero, R., Lux, W.: Declarative Debugging of Encapsulated Search. Electronic Notes in Theoretical Computer Science, vol. 76. Elsevier, Amsterdam (2002)
Caballero, R., López-Fraguas, F.J., Rodríguez-Artalejo, M.: Theoretical Foundations for the Declarative Debugging of Lazy Functional Logic Programs. In: Kuchen, H., Ueda, K. (eds.) FLOPS 2001. LNCS, vol. 2024, pp. 170–184. Springer, Heidelberg (2001)
Caballero, R., Rodríguez Artalejo, M.: A Declarative Debugging System for Lazy Functional Logic Programs. Electronic Notes in Theoretical Computer Science, vol. 64. Elsevier, Amsterdam (2002)
Ferrand, G.: Error Diagnosis in Logic Programming, an Adaptation of E.Y. Shapiro’s Method. The Journal of Logic Programming 4(3), 177–198 (1987)
González-Moreno, J.C., Hortalá-González, M.T., López-Fraguas, F.J., Rodríguez-Artalejo, M.: An Approach to Declarative Programming Based on a Rewriting Logic. Journal of Logic Programming 40(1), 44–87 (1999)
González-Moreno, J.C., Hortalá-González, M.T., Rodríguez-Artalejo, M.: Polymorphic Types in Functional Logic Programming. In: Middeldorp, A. (ed.) FLOPS 1999. LNCS, vol. 1722, Springer, Heidelberg (1999); special issue of the Journal of Functional and Logic Programming (2001), Available at http://danae.uni-muenster.de/lehre/kuchen/JFLP
Hanus, M.: Curry: An Integrated Functional Logic Language. Version 0.7.1 (June 2000), Available at http://www.informatik.uni-kiel.de/curry/report.html
Lloyd, J.W.: Declarative Error Diagnosis. New Generation Computing 5(2), 133–154 (1987)
López-Fraguas, F.J., Sánchez-Hernández, J.: TOY a Multiparadigm Declarative System. In: Narendran, P., Rusinowitch, M. (eds.) RTA 1999. LNCS, vol. 1631, pp. 244–247. Springer, Heidelberg (1999)
Naish, L.: A Declarative Debugging Scheme. Journal of Functional and Logic Programming, 1997-3.
Nilsson, H.: How to look busy while being lazy as ever: The implementation of a lazy functional debugger. Journal of Functional Programming 11(6), 629–671 (2001)
Nilsson, H., Sparud, J.: The Evaluation Dependence Tree as a basis for Lazy Functional Debugging. Automated Software Engineering 4(2), 121–150 (1997)
Peyton Jones, S.L., Hughes, J., et al. (ed.) Report on the programming language Haskell 98: a non-strict, purely functional language (2002), Available at http://www.haskell.org/onlinereport/
Pope, B., Naish, L.: Practical Aspects of Declarative Debugging in Haskell 98. In: Proc. PPDP 2003, pp. 230–240. ACM Press, New York (2003)
Shapiro, E.Y.: Algorithmic Program Debugging. The MIT Press, Cambridge (1982)
SICStus Prolog homepage, http://www.sics.se/sicstus/
Tessier, A., Ferrand, G.: Declarative Diagnosis in the CLP Scheme. In: Deransart, P., Małuszyński, J. (eds.) DiSCiPl 1999. LNCS, vol. 1870, pp. 151–174. Springer, Heidelberg (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Caballero, R., Rodríguez-Artalejo, M. (2004). \(\mathcal{DDT}\): a Declarative Debugging Tool for Functional-Logic Languages. In: Kameyama, Y., Stuckey, P.J. (eds) Functional and Logic Programming. FLOPS 2004. Lecture Notes in Computer Science, vol 2998. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24754-8_7
Download citation
DOI: https://doi.org/10.1007/978-3-540-24754-8_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-21402-1
Online ISBN: 978-3-540-24754-8
eBook Packages: Springer Book Archive