Alternation and the computational complexity of logic programs
Journal of Logic Programming
Types in logic programming
Limits to parallel computation: P-completeness theory
Limits to parallel computation: P-completeness theory
Tabled evaluation with delaying for general logic programs
Journal of the ACM (JACM)
Search and imperative programming
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Journal of the ACM (JACM)
ACM Computing Surveys (CSUR)
And/Or Programs: A New Approach to Structured Programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
A comparison of structural CSP decomposition methods
Artificial Intelligence
Computing a Perfect Strategy for n*n Chess Requires Time Exponential in N
Proceedings of the 8th Colloquium on Automata, Languages and Programming
Complete problems for deterministic polynomial time
STOC '74 Proceedings of the sixth annual ACM symposium on Theory of computing
The circuit value problem is log space complete for P
ACM SIGACT News
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
The DLV system for knowledge representation and reasoning
ACM Transactions on Computational Logic (TOCL)
The Definitive ANTLR Reference: Building Domain-Specific Languages
The Definitive ANTLR Reference: Building Domain-Specific Languages
SFCS '76 Proceedings of the 17th Annual Symposium on Foundations of Computer Science
A uniform integration of higher-order reasoning and external evaluations in answer-set programming
IJCAI'05 Proceedings of the 19th international joint conference on Artificial intelligence
Effective integration of declarative rules with external evaluations for semantic-web reasoning
ESWC'06 Proceedings of the 3rd European conference on The Semantic Web: research and applications
Hi-index | 0.00 |
Alternation is a common tool in complexity theory, where it has been used to prove various complexity classifications. In this work, we show that it can also be used to enhance the expressive power of the imperative part of a programming language. In particular, we present Alter-Java -- an extension of Java by language constructs to express alternation, i.e., a sequence of "there exists" and "for all" statements. Moreover, we show that many practical problems have a very natural and succinct description in terms of alternation. In order to guarantee an efficient execution of such programs, we have introduced several optimizations. We also report on experiments with our implementation of Alter-Java. The results thus obtained illustrate that our alternation framework leads to competitive running times while the code to be written is significantly shorter than without this new language feature.