Dynamic slicing for Concurrent Constraint Languages - Archive ouverte HAL Accéder directement au contenu
Article Dans Une Revue Fundamenta Informaticae Année : 2020

Dynamic slicing for Concurrent Constraint Languages

Résumé

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 other language variants) 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 several variants of CCP, such as the timed language ntcc, linear CCP (an extension of CCP-based on linear logic where constraints can be consumed) and some extensions of CCP dealing with epistemic and spatial information. We also develop a prototypical implementation freely available for making experiments.
Fichier principal
Vignette du fichier
paper.pdf (632.91 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-02423973 , version 1 (26-12-2019)
hal-02423973 , version 2 (31-12-2020)

Identifiants

Citer

Moreno Falaschi, Maurizio Gabbrielli, Carlos Olarte, Catuscia Palamidessi. Dynamic slicing for Concurrent Constraint Languages. Fundamenta Informaticae, 2020, 177 (3-4), pp.331-357. ⟨10.3233/FI-2020-1992⟩. ⟨hal-02423973v2⟩
195 Consultations
164 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More