Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Strong termination of logic programs
Journal of Logic Programming
Tutorial notes on partial evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Go¨del programming language
The Go¨del programming language
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
The size-change principle for program termination
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Termination proofs for logic programs with tabling
ACM Transactions on Computational Logic (TOCL)
Termination Analysis for Tabled Logic Programming
LOPSTR '97 Proceedings of the 7th International Workshop on Logic Programming Synthesis and Transformation
Properties of Input-Consuming Derivations
Theory and Practice of Logic Programming
Verifying termination and error-freedom of logic programs with block declarations
Theory and Practice of Logic Programming
Termination of simply moded logic programs with dynamic scheduling
ACM Transactions on Computational Logic (TOCL)
Computing convex hulls with a linear solver
Theory and Practice of Logic Programming
The formal design of distributed controllers with dSL and Spin
Formal Aspects of Computing
The size-change principle and dependency pairs for termination of term rewriting
Applicable Algebra in Engineering, Communication and Computing
Abstract Interpretation of PIC Programs through Logic Programming
SCAM '06 Proceedings of the Sixth IEEE International Workshop on Source Code Analysis and Manipulation
Program termination analysis in polynomial time
ACM Transactions on Programming Languages and Systems (TOPLAS)
Mechanizing and Improving Dependency Pairs
Journal of Automated Reasoning
Quasi-terminating logic programs for ensuring the termination of partial evaluation
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Improving the Decompilation of Java Bytecode to Prolog by Partial Evaluation
Electronic Notes in Theoretical Computer Science (ENTCS)
Probing the Depths of CSP-M: A New fdr-Compliant Validation Tool
ICFEM '08 Proceedings of the 10th International Conference on Formal Methods and Software Engineering
Fast Offline Partial Evaluation of Large Logic Programs
Logic-Based Program Synthesis and Transformation
Fully automatic binding-time analysis for prolog
LOPSTR'04 Proceedings of the 14th international conference on Logic Based Program Synthesis and Transformation
Towards scalable partial evaluation of declarative programs
LOPSTR'09 Proceedings of the 19th international conference on Logic-Based Program Synthesis and Transformation
Hi-index | 0.00 |
A logic program strongly terminates if it terminates for any selection rule. Clearly, considering a particular selection rule|like Prolog's leftmost selection rule|allows one to prove more goals terminating. In contrast, a strong termination analysis gives valuable information for those applications in which the selection rule cannot be fixed in advance (e.g., partial evaluation, dynamic selection rules, parallel execution). In this paper, we introduce a fast and accurate size-change analysis that can be used to infer conditions for both strong termination and strong quasi-termination of logic programs. We also provide several ways to increase the accuracy of the analysis without sacrificing scalability. In the experimental evaluation, we show that the new algorithm is up to three orders of magnitude faster than the previous implementation, meaning that we can efficiently deal with programs exceeding 25,000 lines of Prolog.