Abstract
We present a generic scheme for the abstract debugging of functional logic programs. We associate to programs a semantics based on a (continuous) immediate consequence operator, \(\mathcal{P}[\![\mathcal{R}]\!]\), which models correctly the powerful features of modern functional logic languages (non-deterministic, non-strict functions defined by non-confluent programs and call-time choice behaviour). Then, we develop an effective debugging methodology which is based on abstract interpretation: by approximating the intended specification of the semantics of \(\mathcal{R}\) we derive a finitely terminating bottom-up diagnosis method, which can be used statically. Our debugging framework does not require the user to provide error symptoms in advance and is applicable with partial specifications and even partial programs.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Alpuente, M., Ballis, D., Correa, F., Falaschi, M.: An Integrated Framework for the Diagnosis and Correction of Rule-Based Programs. Theoretical Computer Science 411(47), 4055–4101 (2010)
Alpuente, M., Comini, M., Escobar, S., Falaschi, M., Iborra, J.: A Compact Fixpoint Semantics for Term Rewriting Systems. Theoretical Computer Science 411(37), 3348–3371 (2010)
Alpuente, M., Comini, M., Escobar, S., Falaschi, M., Lucas, S.: Abstract Diagnosis of Functional Programs. In: Leuschel, M. (ed.) LOPSTR 2002. LNCS, vol. 2664, pp. 1–16. Springer, Heidelberg (2003)
Bacci, G., Comini, M.: A Compact Goal-Independent Bottom-Up Fixpoint Modeling of the Behaviour of First Order Curry. Technical Report DIMI-UD/06/2010/RR, Dipartimento di Matematica e Informatica, Universit? di Udine (2010), http://www.dimi.uniud.it/comini/Papers/
Bert, D., Echahed, R.: Abstraction of Conditional Term Rewriting Systems. In: Lloyd, J.W. (ed.) Proceedings of the 1995 Int’l Symposium on Logic Programming (ILPS 1995), pp. 162–176. The MIT Press, Cambridge (1995)
Braßel, B.: A Technique to build Debugging Tools for Lazy Functional Logic Languages. In: Falaschi, M. (ed.) Proceedings of the 17th Workshop on Functional and (Constraint) Logic Programming (WFLP 2008), pp. 63–76 (2008)
Caballero-Roldán, R.: A Declarative Debugger of Incorrect Answers for Constraint Functional-Logic Programs. In: WCFLP 2005: Proceedings of the 2005 ACM SIGPLAN Workshop on Curry and Functional Logic Programming, pp. 8–13. ACM Press, New York (2005)
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-Roldán, R., RodrÃquez-Artalejo, M., del Vado-VÃrseda, R.: Declarative Diagnosis of Missing Answers in Constraint Functional-Logic Programming. In: Garrigue, J., Hermenegildo, M.V. (eds.) FLOPS 2008. LNCS, vol. 4989, pp. 305–321. Springer, Heidelberg (2008)
Comini, M., Gori, R., Levi, G., Volpe, P.: Abstract Interpretation based Verification of Logic Programs. Science of Computer Programming 49(1-3), 89–123 (2003)
Comini, M., Levi, G., Meo, M.C., Vitiello, G.: Proving properties of Logic Programs by Abstract Diagnosis. In: Dam, M. (ed.) LOMAPS-WS 1996. LNCS, vol. 1192, pp. 22–50. Springer, Heidelberg (1997)
Comini, M., Levi, G., Meo, M.C., Vitiello, G.: Abstract Diagnosis. Journal of Logic Programming 39(1-3), 43–93 (1999)
Comini, M., Levi, G., Vitiello, G.: Declarative Diagnosis Revisited. In: Lloyd, J.W. (ed.) Proceedings of the 1995 Int’l Symposium on Logic Programming (ILPS 1995), pp. 275–287. The MIT Press, Cambridge (1995)
Cousot, P., Cousot, R.: Systematic Design of Program Analysis Frameworks. In: Proceedings of the 6th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, San Antonio, Texas, January 29-31, pp. 269–282. ACM Press, New York (1979)
Echahed, R., Janodet, J.-C.: Admissible Graph Rewriting and Narrowing. In: Proceedings of the Joint International Conference and Symposium on Logic Programming, pp. 325–340. MIT Press, Cambridge (1998)
Hanus, M.: Call pattern analysis for functional logic programs. In: Proc. of the 10th International ACM SIGPLAN Conference on Principle and Practice of Declarative Programming (PPDP 2008), pp. 67–78. ACM Press, New York (2008)
Naish, L., Barbour, T.: A Declarative Debugger for a Logical-Functional Language. In: Eighth International Conference on Industrial and Engineering Applications of Artificial Intelligence and Expert Systems, vol. 2, pp. 91–99 (1995)
Nilsson, H., Fritzson, P.: Algoritmic debugging for lazy functional languages. Journal of Functional Programming 4(1), 337–370 (1994)
Palamidessi, C.: Algebraic Properties of Idempotent Substitutions. In: Paterson, M.S. (ed.) ICALP 1990. LNCS, vol. 443, pp. 386–399. Springer, Heidelberg (1990)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bacci, G., Comini, M. (2011). Abstract Diagnosis of First Order Functional Logic Programs. In: Alpuente, M. (eds) Logic-Based Program Synthesis and Transformation. LOPSTR 2010. Lecture Notes in Computer Science, vol 6564. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-20551-4_14
Download citation
DOI: https://doi.org/10.1007/978-3-642-20551-4_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-20550-7
Online ISBN: 978-3-642-20551-4
eBook Packages: Computer ScienceComputer Science (R0)