Theoretical Computer Science
Introduction to algorithms
Lambda calculus characterizations of poly-time
Fundamenta Informaticae - Special issue: lambda calculus and type theory
A new recursion-theoretic characterization of the polytime functions
Computational Complexity
Computability and complexity: from a programming perspective
Computability and complexity: from a programming perspective
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Computability of Recursive Functions
Journal of the ACM (JACM)
The size-change principle for program termination
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Principles of Program Analysis
Principles of Program Analysis
Linear Types and Non Size-Increasing Polynomial Time Computation
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
A predicative analysis of structural recursion
Journal of Functional Programming
The expressive power of higher-order types or, life without CONS
Journal of Functional Programming
Heap-Bounded Assembly Language
Journal of Automated Reasoning
Certifying Polynomial Time and Linear/Polynomial Space for Imperative Programs
SIAM Journal on Computing
The intensional content of Rice's theorem
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Size-change termination with difference constraints
ACM Transactions on Programming Languages and Systems (TOPLAS)
Size-Change termination and bound analysis
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
The flow of data and the complexity of algorithms
CiE'05 Proceedings of the First international conference on Computability in Europe: new Computational Paradigms
Type-Based complexity analysis for fork processes
FOSSACS'13 Proceedings of the 16th international conference on Foundations of Software Science and Computation Structures
Hi-index | 0.00 |
Resource Control Graphs are an abstract representation of programs. Each state of the program is abstracted by its size, and each instruction is abstracted by the effects it has on the state size whenever it is executed. The abstractions of instruction effects are then used as weights on the arcs of a program's Control Flow Graph. Termination is proved by finding decreases in a well-founded order on state-size, in line with other termination analyses, resulting in proofs similar in spirit to those produced by Size Change Termination analysis. However, the size of states may also be used to measure the amount of space consumed by the program at each point of execution. This leads to an alternative characterisation of the Non Size Increasing programs, that is, of programs that can compute without allocating new memory. This new tool is able to encompass several existing analyses and similarities with other studies, suggesting that even more analyses might be expressable in this framework, thus giving hopes for a generic tool for studying programs.