Automatic complexity analysis

One way to analyse programs is to to derive expressions for their computational behaviour. A time bound function (or worst-case complexity) gives an upper bound for the computation time as a function of the size of input. We describe a system to derive such time bounds automatically using abstract interpretation. The semantics-based setting makes it possible to prove the correctness of the time bound function. The system can analyse programs in a first-order subset of Lisp and we show how the system also can be used to analyse programs in other languages.

[1]  John C. Reynolds,et al.  Automatic computation of data set definitions , 1968, IFIP Congress.

[2]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[3]  A. Haller,et al.  Automatic Program Analysis , 1974 .

[4]  Ben Wegbreit,et al.  Mechanical program analysis , 1975, CACM.

[5]  Ben Wegbreit,et al.  Goal-Directed Program Transformation , 1976, IEEE Transactions on Software Engineering.

[6]  Jacques Cohen,et al.  Symbolic Solution of Finite-Difference Equations , 1977, TOMS.

[7]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[8]  Michael J. C. Gordon,et al.  The Denotational Description of Programming Languages , 1979, Springer New York.

[9]  Etsuro Moriya,et al.  A Theoretical Study of the Time Analysis of Programs , 1979, International Symposium on Mathematical Foundations of Computer Science.

[10]  Michael J. C. Gordon,et al.  The denotational description of programming languages - an introduction , 1979 .

[11]  Jacques Cohen,et al.  Computer-assisted microanalysis of programs , 1982, CACM.

[12]  D. L. Métayer,et al.  Mechanical analysis of program complexity , 1985, SLIPE '85.

[13]  Valentin F. Turchin,et al.  The concept of a supercompiler , 1986, TOPL.

[14]  Vivek Sarkar,et al.  Compile-time partitioning and scheduling of parallel programs , 1986, SIGPLAN '86.

[15]  Jacques Cohen,et al.  Automating program analysis , 1988, JACM.

[16]  Daniel Le Métayer,et al.  ACE: an automatic complexity evaluator , 1988, TOPL.

[17]  Philip Wadler,et al.  Strictness analysis aids time analysis , 1988, POPL '88.