ICLP'93 Proceedings of the tenth international conference on logic programming on Logic programming
Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery
CHRv: A Flexible Query Language
FQAS '98 Proceedings of the Third International Conference on Flexible Query Answering Systems
A Formal Approach to Recovery by Compensating Transactions
A Formal Approach to Recovery by Compensating Transactions
Data-dependent concurrency control and recovery
ACM SIGOPS Operating Systems Review
Composable memory transactions
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Optimal union-find in Constraint Handling Rules
Theory and Practice of Logic Programming
Open nesting in software transactional memory
Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Transactional boosting: a methodology for highly-concurrent transactional objects
Proceedings of the 13th ACM SIGPLAN Symposium on Principles and practice of parallel programming
The computational power and complexity of constraint handling rules
ACM Transactions on Programming Languages and Systems (TOPLAS)
A concurrent calculus with atomic transactions
ESOP'07 Proceedings of the 16th European conference on Programming
Observable confluence for constraint handling rules
ICLP'07 Proceedings of the 23rd international conference on Logic programming
Parallelizing union-find in constraint handling rules using confluence analysis
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Concurrent goal-based execution of constraint handling rules
Theory and Practice of Logic Programming
Hi-index | 0.01 |
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.