A preview of the PDF is not available
Transactions in Constraint Handling Rules
CHR is a highly concurrent language, and yet it is by no means a trivial task to write correct concurrent CHR programs. We propose a new semantics for CHR, which allows specifying and reasoning about transactions. Transactions alleviate the complexity of writing concurrent programs by offering entire derivations to run atomically and in isolation. We derive several program transformations based on our semantics that transform particular classes of transitional CHR programs to non-transactional ones. These transformations are useful because they obviate a general purpose transaction manager, and may lift unnecessary sequentialization present in the transactional semantics.