Heap-size analysis for assembly programs

Our objective is to propose methods for resource-aware compilation inspired by the implicit complexity community. We consider a small assembly-like language and we build abstract finite machine models in order to predict a bound on the maximal heap usage of a program. We propose a polynomial time procedure to detect and certify a broad and meaningful class of non-size increasing programs, which run in a constant size heap. We end by discussing about programs running in linear heap space and discussing how to capture logarithmic space computation.

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

[2]  Jean-Yves Marion,et al.  Termination and resource analysis of assembly programs by Petri nets , 2003 .

[3]  Jens Palsberg,et al.  Stack Size Analysis for Interrupt-Driven Programs , 2003, SAS.

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

[5]  D. C. Cooper,et al.  Theory of Recursive Functions and Effective Computability , 1969, The Mathematical Gazette.

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

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

[8]  Daniel Leivant,et al.  Proving termination assertions in dynamic logics , 2004, Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science, 2004..

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

[10]  Tadao Murata,et al.  Petri nets: Properties, analysis and applications , 1989, Proc. IEEE.

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

[12]  Daniel Leivant,et al.  Matching Explicit and Modal Reasoning about Programs: A Proof Theoretic Delineation of Dynamic Logic , 2006, 21st Annual IEEE Symposium on Logic in Computer Science (LICS'06).

[13]  Klaus Aehlig,et al.  A syntactical analysis of non-size-increasing polynomial time computation , 2002, TOCL.

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

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

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

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

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

[19]  LeeChin Soon,et al.  The size-change principle for program termination , 2001 .

[20]  Martin Hofmann,et al.  The strength of non-size increasing computation , 2002, POPL '02.

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

[22]  Roberto M. Amadio,et al.  Max-Plus Quasi-interpretations , 2003, TLCA.

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

[24]  Guillaume Bonfante,et al.  Quasi-interpretations and Small Space Bounds , 2005, RTA.

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

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

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

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