Section: New Results
Implicit Computational Complexity
The goal of implicit computational complexity is to give ontogenetic model of computational complexity. We follow two lines of research. The first line is more theoretical and is related to the initial ramified recursion theory due to Leivant and Marion and to light linear logic due to Girard. The second is more practical and is related to interpretation methods, quasi-interpretation and sup-interpretation, in order to provide an upper bound on some computational resources, which are necessary for a program execution. This approach seems to have some practical interests, and we develop a software Crocus that automatically infer complexity upper bounds of functional programs.
The theoretical line. In  and  , Marco Gaboardi, Jean-Yves Marion and Simona Ronchi provided the first characterization of polynomial space problems by a light logic called STA B . Then, we also characterize the set of NP-problems. From a practical point of view, such results can be seen as a type system which guarantees the complexity of a program.
Guillaume Bonfante, Reinhard Kahle, Jean-Yves Marion and Isabel Oitavem have proposed the first characterization of the classes in terms of impliit computational complexity in  . The characterization uses no explicit bounds in the recursion and also no tiering discipline is needed. It is based on three recursion schemes, one corresponds to time (time iteration), one to space allocation (explicit structural recursion) and one to internal computations (mutual in place recursion). This is, to our knowledge, the first exact characterization of the by function algebra over inÞnite domains in implicit complexity.
The practical line. Quasi-interpretations and sup-interpretations are a general method to analyse a program and to determine in a static way an upper bound on the amount of ressource (memory, time), which is necessary to execute a program. We published a survey paper in  . We have worked on sup-interpretations and quasi-interpretations with different perspectives. First, we showed that these methods are flexible enough to characterize the small parallel complexity classes , see  . Second, we extended the class of first order functional program that we can analyse by these methods, see  . This paper gives also some method to prove program termination, which is related to the previous section. Lastly, we apply these methods to programming object languages. In  , Jean-Yves Marion and Romain Péchoux extended the notion of sup-interpretations to a fragment of Java. So we determine an upper bound on the space complexity on a java like program.