Efficient tests for top-down termination of logical rules
Journal of the ACM (JACM)
Termination proofs for logic programs
Termination proofs for logic programs
Termination detection in logic programs using argument sizes (extended abstract)
PODS '91 Proceedings of the tenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Inference of inequality constraints in logic programs (extended abstracts)
PODS '91 Proceedings of the tenth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Proceedings of the 5th ACM conference on Functional programming languages and computer architecture
A practical algorithm for exact array dependence analysis
Communications of the ACM
ESOP'92 Symposium proceedings on 4th European symposium on programming
Transitive closure of infinite graphs and its applications
Transitive closure of infinite graphs and its applications
Proving the correctness of reactive systems using sized types
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A bounds inference method for vector-based memoization
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Eliminating array bound checking through dependent types
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Dependent types in practical programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
BTA Algorithms to Ensure Termination of Off-Line Partial Evaluation
Proceedings of the Second International Andrei Ershov Memorial Conference on Perspectives of System Informatics
Termination Analysis for Mercury
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
The size-change principle for program termination
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automatic Accurate Live Memory Analysis for Garbage-Collected Languages
OM '01 Proceedings of the 2001 ACM SIGPLAN workshop on Optimization of middleware and distributed systems
Automatic time-bound analysis for a higher-order language
PEPM '02 Proceedings of the 2002 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Charting patterns on price history
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
Compiling real time functional reactive programming
ASIA-PEPM '02 Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation
Output-constraint specialization
ASIA-PEPM '02 Proceedings of the ASIAN symposium on Partial evaluation and semantics-based program manipulation
Deriving Pre-conditions for Array Bound Check Elimination
PADO '01 Proceedings of the Second Symposium on Programs as Data Objects
Optimized Live Heap Bound Analysis
VMCAI 2003 Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation
Extending sized type with collection analysis
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Single Assignment C: efficient support for high-level array operations in a functional setting
Journal of Functional Programming
Program Adaptation via Output-Constraint Specialization
Higher-Order and Symbolic Computation
A type system for resource protocol verification and its correctness proof
Proceedings of the 2004 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Verifying safety policies with size properties and alias controls
Proceedings of the 27th international conference on Software engineering
A practical and precise inference and specializer for array bound checks elimination
PEPM '08 Proceedings of the 2008 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Flow-insensitive static analysis for detecting integer anomalies in programs
SE'07 Proceedings of the 25th conference on IASTED International Multi-Conference: Software Engineering
Dependent type inference with interpolants
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Automated verification of shape and size properties via separation logic
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
On-demand refinement of dependent types
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
A transformational approach which combines size inference and program optimization
SAIG'01 Proceedings of the 2nd international conference on Semantics, applications, and implementation of program generation
Science of Computer Programming
Counter automata for parameterised timing analysis of box-based systems
FOPARA'11 Proceedings of the Second international conference on Foundational and Practical Aspects of Resource Analysis
Hi-index | 0.00 |
Many program optimisations and analyses, such as array-bound checking, termination analysis, etc, depend on knowing the size of a function's input and output. However, size information can be difficult to compute. Firstly, accurate size computation requires detecting size relation between different inputs of a function. Secondly, different optimisations and analyses may require slightly different size information, and thus slightly different computation. Literature in size computation has mainly concentrated on size checking, instead of inferencing. In this paper, we provide a generic framework on which different size variants can be expressed and computed. We also describe an effective algorithm for inferring, instead of checking, size information. Size information are expressed in terms of Presburger formulae, and our algorithm utilises the Omega Calculator to compute as exact a size information as possible, within the linear arithmetic capability.