Resource control of object-oriented programs

A sup-interpretation is a tool which provides an upper bound on the size of a value computed by some symbol of a program. Sup-interpretations have shown their interest to deal with the complexity of first order functional programs. For instance, they allow to characterize all the functions bitwise computable in \texttt{Alogtime}. This paper is an attempt to adapt the framework of sup-interpretations to a fragment of oriented-object programs, including distinct encodings of numbers through the use of constructor symbols, loop and while constructs and non recursive methods with side effects. We give a criterion, called brotherly criterion, which ensures that each brotherly program computes objects whose size is polynomially bounded by the inputs sizes.

[1]  Silvano Dal-Zilio,et al.  Resource control for synchronous cooperative threads , 2005, Theor. Comput. Sci..

[2]  Manuel Blum,et al.  A Machine-Independent Theory of the Complexity of Recursive Functions , 1967, JACM.

[3]  Sophia Drossopoulou,et al.  Describing the Semantics of Java and Proving Type Soundness , 1999, Formal Syntax and Semantics of Java.

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

[5]  Silvano Dal-Zilio,et al.  Resource Bound Certification for a Tail-Recursive Virtual Machine , 2005, APLAS.

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

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

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

[9]  Jürgen Giesl,et al.  Termination of term rewriting using dependency pairs , 2000, Theor. Comput. Sci..

[10]  Jean-Yves Marion,et al.  Resource Analysis by Sup-interpretation , 2006, FLOPS.

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

[12]  Guillaume Bonfante,et al.  A Characterization of Alternating Log Time by First Order Functional Programs , 2006, LPAR.

[13]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 2001, TOPL.

[14]  Jean-Yves Marion,et al.  Sup-interpretations, a semantic method for static analysis of program resources , 2009, TOCL.