Resource control graphs

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.

[1]  John C. Shepherdson,et al.  Computability of Recursive Functions , 1963, JACM.

[2]  James Avery,et al.  Size-Change Termination and Bound Analysis , 2006, FLOPS.

[3]  Martin Hofmann,et al.  Linear types and non-size-increasing polynomial time computation , 1999, Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158).

[4]  Yehoshua Bar-Hillel,et al.  The Intrinsic Computational Difficulty of Functions , 1969 .

[5]  Stephen A. Cook,et al.  A new recursion-theoretic characterization of the polytime functions , 1992, STOC '92.

[6]  Neil D. Jones,et al.  The size-change principle for program termination , 2001, POPL '01.

[7]  Neil D. Jones,et al.  The Flow of Data and the Complexity of Algorithms , 2005, CiE.

[8]  Thorsten Altenkirch,et al.  Under Consideration for Publication in J. Functional Programming a Predicative Analysis of Structural Recursion , 2022 .

[9]  Jean-Yves Marion,et al.  Quasi-interpretation: a way to control ressources , 2005 .

[10]  Christophe Reutenauer,et al.  Aspects mathématiques des réseaux de pétri , 1988 .

[11]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[12]  Jean-Yves Marion,et al.  Heap-size analysis for assembly programs , 2006 .

[13]  Jean-Yves Moyen SCT and the idempotence condition , 2008 .

[14]  David Aspinall,et al.  Heap-Bounded Assembly Language , 2004, Journal of Automated Reasoning.

[15]  Patrick Lincoln,et al.  Linear logic , 1992, SIGA.

[16]  Andrea Asperti,et al.  The intensional content of Rice's theorem , 2008, POPL '08.

[17]  Loïc Colson The Logic in Computer Science Column Functions versus Algorithms , 1998, Bull. EATCS.

[18]  Henning Wunderlich,et al.  Certifying Polynomial Time and Linear/Polynomial Space for Imperative Programs , 2006, SIAM J. Comput..

[19]  Neil D. Jones The expressive power of higher-order types or, life without CONS , 2001, J. Funct. Program..

[20]  M. Hofmann A Type System for Bounded Space and Functional In-Place Update , 2000, Nord. J. Comput..

[21]  Daniel Leivant,et al.  Lambda Calculus Characterizations of Poly-Time , 1993, Fundam. Informaticae.

[22]  George C. Necula,et al.  Proof-carrying code , 1997, POPL '97.

[23]  H. Rice Classes of recursively enumerable sets and their decision problems , 1953 .

[24]  Neil D. Jones,et al.  Computability and complexity - from a programming perspective , 1997, Foundations of computing series.

[25]  Amir M. Ben-Amram Size-change termination with difference constraints , 2008, TOPL.

[26]  Jr. Hartley Rogers Theory of Recursive Functions and Effective Computability , 1969 .

[27]  Yuri V. Matiyasevich,et al.  Hilbert's 10th Problem , 1993 .

[28]  Loïc Colson Functions Versus Algorithms , 2001, Current Trends in Theoretical Computer Science.

[29]  Yuri Gurevich,et al.  Contextual Semantics: From QuantumMechanics to Logic, Databases, Constraints, and Complexity , 2014 .

[30]  Stephen A. Cook,et al.  A new recursion-theoretic characterization of the polytime functions (extended abstract) , 1992, STOC '92.

[31]  Flemming Nielson,et al.  Principles of Program Analysis , 1999, Springer Berlin Heidelberg.

[32]  Silvano Dal-Zilio,et al.  A Functional Scenario for Bytecode Verification of Resource Bounds , 2004, CSL.

[33]  Guillaume Bonfante,et al.  Quasi-interpretations a way to control resources , 2011, Theor. Comput. Sci..