TY - GEN
T1 - Slicing concurrent constraint programs
AU - Falaschi, Moreno
AU - Gabbrielli, Maurizio
AU - Olarte, Carlos
AU - Palamidessi, Catuscia
N1 - Publisher Copyright:
© Springer International Publishing AG 2017.
PY - 2017/1/1
Y1 - 2017/1/1
N2 - 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.
AB - 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.
KW - Concurrent constraint programming
KW - Debugging
KW - Program slicing
UR - https://www.scopus.com/pages/publications/85028326413
U2 - 10.1007/978-3-319-63139-4_5
DO - 10.1007/978-3-319-63139-4_5
M3 - Conference contribution
AN - SCOPUS:85028326413
SN - 9783319631387
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 76
EP - 93
BT - Logic-Based Program Synthesis and Transformation - 26th International Symposium, LOPSTR 2016, Revised Selected Papers
A2 - Hermenegildo, Manuel V.
A2 - Lopez-Garcia, Pedro
PB - Springer Verlag
T2 - 26th International Symposium on Logic-Based Program Synthesis and Transformation, LOPSTR 2016
Y2 - 6 September 2016 through 8 September 2016
ER -