The family of concurrent logic programming languages
ACM Computing Surveys (CSUR)
Embedding as a tool for language comparison
Information and Computation
Expressive Results for Process Algebras
Proceedings of the REX Workshop on Sematics: Foundations and Applications
Comparing the expressive power of the synchronous and asynchronous $pi$-calculi
Mathematical Structures in Computer Science
User-definable rule priorities for CHR
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Tutorial on separation results in process calculi via leader election problems
Theoretical Computer Science
The computational power and complexity of constraint handling rules
ACM Transactions on Programming Languages and Systems (TOPLAS)
Turing-Complete Subclasses of CHR
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Expressiveness of Multiple Heads in CHR
SOFSEM '09 Proceedings of the 35th Conference on Current Trends in Theory and Practice of Computer Science
On the expressive power of priorities in CHR
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
A complete and terminating execution model for constraint handling rules
Theory and Practice of Logic Programming
On the Expressive Power of Multiple Heads in CHR
ACM Transactions on Computational Logic (TOCL)
On the expressive power of global and local priority in process calculi
CONCUR'07 Proceedings of the 18th international conference on Concurrency Theory
Hi-index | 0.00 |
Constraint Handling Rules (CHR) is a committed-choice declarative language which has been originally designed for writing constraint solvers and which is nowadays a general purpose language. Recently the language has been extended by introducing user-definable (static or dynamic) rule priorities. The resulting language allows a better control over execution while retaining a declarative and flexible style of programming. In this paper we study the expressive power of this language. We first show that, in the presence of priorities, differently from the case of standard CHR, considering more than two atoms in the heads of rules does not augment the expressive power of the language. Next we show that also dynamic priorities do not augment the expressive power w.r.t. static priorities. These results are proved by providing explicitly a translation of one language into another one, which preserves a reference semantics. Finally we show that CHR with priorities is strictly more expressive than standard CHR (under the theoretical operational semantics). This result is obtained by adapting to the CHR case a notion of language encoding which allows to compare Turing powerful languages.