Advertisement

Slicing Concurrent Constraint Programs

  • Moreno Falaschi
  • Maurizio Gabbrielli
  • Carlos Olarte
  • Catuscia Palamidessi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10184)

Abstract

Concurrent Constraint Programming (CCP) is a declarative model for concurrency where agents interact by telling and asking constraints (pieces of information) in a shared store. Some previous works have developed (approximated) declarative debuggers for CCP languages. However, the task of debugging concurrent programs remains difficult. In this paper we define a dynamic slicer for CCP and we show it to be a useful companion tool for the existing debugging techniques. We start with a partial computation (a trace) that shows the presence of bugs. Often, the quantity of information in such a trace is overwhelming, and the user gets easily lost, since she cannot focus on the sources of the bugs. Our slicer allows for marking part of the state of the computation and assists the user to eliminate most of the redundant information in order to highlight the errors. We show that this technique can be tailored to timed variants of CCP. We also develop a prototypical implementation freely available for making experiments.

Keywords

Concurrent Constraint Programming Program slicing Debugging 

Notes

Acknowledgments

We thank the anonymous reviewers for their detailed comments and suggestions which helped us to improve our paper. The work of Olarte was funded by CNPq and CAPES (Brazil). The work of Palamidessi and Olarte was supported by the Regional Program STIC AMSUD “EPIC: EPistemic Interactive Concurrency”.

References

  1. 1.
    Alpuente, M., Ballis, D., Espert, J., Romero, D.: Backward trace slicing for rewriting logic theories. In: Bjørner, N., Sofronie-Stokkermans, V. (eds.) CADE 2011. LNCS (LNAI), vol. 6803, pp. 34–48. Springer, Heidelberg (2011). doi: 10.1007/978-3-642-22438-6_5 CrossRefGoogle Scholar
  2. 2.
    Alpuente, M., Ballis, D., Frechina, F., Romero, D.: Using conditional trace slicing for improving Maude programs. Sci. Comput. Program. 80, 385–415 (2014)CrossRefGoogle Scholar
  3. 3.
    Berry, G., Gonthier, G.: The Esterel synchronous programming language: design, semantics, implementation. Sci. Comput. Program. 19(2), 87–152 (1992)CrossRefzbMATHGoogle Scholar
  4. 4.
    Bortolussi, L., Policriti, A.: Modeling biological systems in stochastic concurrent constraint programming. Constraints 13(1–2), 66–90 (2008)MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Chemillier, M.: Les Mathématiques Naturelles. Odile Jacob, Paris (2007)zbMATHGoogle Scholar
  6. 6.
    Codish, M., Falaschi, M., Marriott, K.: Suspension analyses for concurrent logic programs. ACM Trans. Program. Lang. Syst. 16(3), 649–686 (1994)CrossRefGoogle Scholar
  7. 7.
    Comini, M., Titolo, L., Villanueva, A.: Abstract diagnosis for timed concurrent constraint programs. Theor. Pract. Log. Program. 11(4–5), 487–502 (2011)MathSciNetCrossRefzbMATHGoogle Scholar
  8. 8.
    de Boer, F.S., Gabbrielli, M., Meo, M.C.: A timed concurrent constraint language. Inf. Comput. 161(1), 45–83 (2000)MathSciNetCrossRefzbMATHGoogle Scholar
  9. 9.
    de Boer, F.S., Di Pierro, A., Palamidessi, C.: Nondeterminism and infinite computations in constraint programming. Theor. Comput. Sci. 151(1), 37–78 (1995)MathSciNetCrossRefzbMATHGoogle Scholar
  10. 10.
    Fages, F., Ruet, P., Soliman, S.: Linear concurrent constraint programming: operational and phase semantics. Inf. Comput. 165(1), 14–41 (2001)MathSciNetCrossRefzbMATHGoogle Scholar
  11. 11.
    Falaschi, M., Olarte, C., Palamidessi, C.: Abstract interpretation of temporal concurrent constraint programs. TPLP 15(3), 312–357 (2015)MathSciNetGoogle Scholar
  12. 12.
    Van Hentenryck, P., Saraswat, V.A., Deville, Y.: Design, implementation, and evaluation of the constraint language cc(FD). J. Log. Program. 37(1–3), 139–164 (1998)CrossRefzbMATHGoogle Scholar
  13. 13.
    Josep, S.: A vocabulary of program slicing-based techniques. ACM Comput. Surv. 44(3), 12:1–12:41 (2012)zbMATHGoogle Scholar
  14. 14.
    Knight, S., Palamidessi, C., Panangaden, P., Valencia, F.D.: Spatial and epistemic modalities in constraint-based process calculi. In: Koutny, M., Ulidowski, I. (eds.) CONCUR 2012. LNCS, vol. 7454, pp. 317–332. Springer, Heidelberg (2012). doi: 10.1007/978-3-642-32940-1_23 CrossRefGoogle Scholar
  15. 15.
    Korel, B., Laski, J.: Dynamic program slicing. Inf. Process. Lett. 29(3), 155–163 (1988)CrossRefzbMATHGoogle Scholar
  16. 16.
    de Maria, E., Despeyroux, J., Felty, A.P.: A logical framework for systems biology. In: Fages, F., Piazza, C. (eds.) FMMB 2014. LNCS, vol. 8738, pp. 136–155. Springer, Cham (2014). doi: 10.1007/978-3-319-10398-3_10
  17. 17.
    Nielsen, M., Palamidessi, C., Valencia, F.D.: On the expressive power of temporal concurrent constraint programming languages. In: Proceedings of PPDP 2002, pp. 156–167. ACM (2002)Google Scholar
  18. 18.
    Nielsen, M., Palamidessi, C., Valencia, F.D.: Temporal concurrent constraint programming: denotation, logic and applications. Nord. J. Comput. 9(1), 145–188 (2002)MathSciNetzbMATHGoogle Scholar
  19. 19.
    Ochoa, C., Silva, J., Vidal, G.: Dynamic slicing of lazy functional programs based on redex trails. High. Order Symbol. Comput. 21(1–2), 147–192 (2008)CrossRefzbMATHGoogle Scholar
  20. 20.
    Olarte, C., Pimentel, E., Nigam, V.: Subexponential concurrent constraint programming. Theor. Comput. Sci. 606, 98–120 (2015)MathSciNetCrossRefzbMATHGoogle Scholar
  21. 21.
    Olarte, C., Rueda, C., Sarria, G., Toro, M., Valencia, F.D.: Concurrent constraints models of music interaction. In: Assayag, G., Truchet, C. (eds.) Constraint Programming in Music, pp. 133–153. Wiley, Hoboken (2011)Google Scholar
  22. 22.
    Olarte, C., Rueda, C., Valencia, F.D.: Models and emerging trends of concurrent constraint programming. Constraints 18(4), 535–578 (2013)MathSciNetCrossRefzbMATHGoogle Scholar
  23. 23.
    Olarte, C., Valencia, F.D.: Universal concurrent constraint programing: symbolic semantics and applications to security. In: Wainwright, R.L., Haddad, H. (eds.) SAC, pp. 145–150. ACM (2008)Google Scholar
  24. 24.
    Saraswat, V.A.: Concurrent Constraint Programming. MIT Press, Cambridge (1993)zbMATHGoogle Scholar
  25. 25.
    Saraswat, V.A., Jagadeesan, R., Gupta, V.: Timed default concurrent constraint programming. J. Symb. Comput. 22(5/6), 475–520 (1996)MathSciNetCrossRefzbMATHGoogle Scholar
  26. 26.
    Saraswat, V.A., Rinard, M.C., Panangaden, P.: Semantic foundations of concurrent constraint programming. In: Wise, D.S. (ed.) POPL, pp. 333–352. ACM Press (1991)Google Scholar
  27. 27.
    Shapiro, E.Y.: Algorithmic Program DeBugging. MIT Press, Cambridge (1983)zbMATHGoogle Scholar
  28. 28.
    Weiser, M.: Program slicing. IEEE Trans. Softw. Eng. 10(4), 352–357 (1984)CrossRefzbMATHGoogle Scholar

Copyright information

© Springer International Publishing AG 2017

Authors and Affiliations

  • Moreno Falaschi
    • 1
  • Maurizio Gabbrielli
    • 2
  • Carlos Olarte
    • 3
  • Catuscia Palamidessi
    • 4
  1. 1.Dipartimento di Ingegneria dell’Informazione e Scienze MatematicheUniversità di SienaSienaItaly
  2. 2.Dipartimento di Informatica - Scienza e IngegneriaUniversità di BolognaBolognaItaly
  3. 3.ECTUniversidade Federal do Rio Grande do NorteNatalBrazil
  4. 4.INRIA and LIX, École PolytechniquePalaiseauFrance

Personalised recommendations