Slicing Concurrent Constraint Programs
Moreno Falaschi, Maurizio Gabbrielli, Carlos Olarte, Catuscia, Palamidessi

TL;DR
This paper introduces a dynamic slicing technique for Concurrent Constraint Programming (CCP) to help debug complex concurrent programs by isolating relevant parts of execution traces, including timed variants.
Contribution
It presents a novel dynamic slicer for CCP that simplifies debugging by focusing on bug-related computation parts, with a prototype implementation available.
Findings
Effective in isolating bug sources in CCP traces
Can be adapted for timed CCP variants
Prototype implementation demonstrates practical utility
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. Our technique starts by considering 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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Logic, Reasoning, and Knowledge · Constraint Satisfaction and Optimization
