3 research outputs found
Flowchart Programs, Regular Expressions, and Decidability of Polynomial Growth-Rate
We present a new method for inferring complexity properties for a class of
programs in the form of flowcharts annotated with loop information.
Specifically, our method can (soundly and completely) decide if computed values
are polynomially bounded as a function of the input; and similarly for the
running time. Such complexity properties are undecidable for a Turing-complete
programming language, and a common work-around in program analysis is to settle
for sound but incomplete solutions. In contrast, we consider a class of
programs that is Turing-incomplete, but strong enough to include several
challenges for this kind of analysis. For a related language that has
well-structured syntax, similar to Meyer and Ritchie's LOOP programs, the
problem has been previously proved to be decidable. The analysis relied on the
compositionality of programs, hence the challenge in obtaining similar results
for flowchart programs with arbitrary control-flow graphs. Our answer to the
challenge is twofold: first, we propose a class of loop-annotated flowcharts,
which is more general than the class of flowcharts that directly represent
structured programs; secondly, we present a technique to reuse the ideas from
the work on tructured programs and apply them to such flowcharts. The technique
is inspired by the classic translation of non-deterministic automata to regular
expressions, but we obviate the exponential cost of constructing such an
expression, obtaining a polynomial-time analysis. These ideas may well be
applicable to other analysis problems.Comment: In Proceedings VPT 2016, arXiv:1607.0183
Tight polynomial bounds for Loop programs in polynomial space
We consider the following problem: given a program, find tight asymptotic
bounds on the values of some variables at the end of the computation (or at any given
program point) in terms of its input values. We focus on the case of polynomially-bounded
variables, and on a weak programming language for which we have recently shown that
tight bounds for polynomially-bounded variables are computable. These bounds are sets
of multivariate polynomials. While their computability has been settled, the complexity
of this program-analysis problem remained open. In this paper, we show the problem to
be PSPACE-complete. The main contribution is a new, space-efficient analysis algorithm.
This algorithm is obtained in a few steps. First, we develop an algorithm for univariate
bounds, a sub-problem which is already PSPACE-hard. Then, a decision procedure for
multivariate bounds is achieved by reducing this problem to the univariate case; this
reduction is orthogonal to the solution of the univariate problem and uses observations on
the geometry of a set of vectors that represent multivariate bounds. Finally, we transform
the univariate-bound algorithm to produce multivariate bounds