What is decidable in growth-rate analysis of programs?

October 2, 2014

Amir Ben-Amram


What is decidable in growth-rate analysis of programs?

Time:   11:00am
Location:   Meeting room 302 (Mountain View), level 3

Growth-rate analysis is the problem of finding, for a program in a suitable programming language, how fast the computed values, or the running time, etc., grow as a function of the input. We concentrate on decision problems like: do the values grow at most polynomially in the input? In this talk I will survey research starting with a CiE 2008 paper where Jones, Kristiansen and I presented an algorithm that, for a simple but non-trivial imperative programming language, answers the polynomial and linear growth-rate questions. The interesting part was that the algorithm solved the problem precisely—problems of this type are undecidable for ordinary, full languages, and even rather simple ones. The surprising part was that it ran in polynomial time. Consequently, we have tried to explore the boundaries of tractability and decidability in the vicinity of our original problem, that is, to consider modifications to the programming language and study their effect.