Mechanical program analysis

One means of analyzing program performance is by deriving closed-form expressions for their execution behavior. This paper discusses the mechanization of such analysis, and describes a system, Metric, which is able to analyze simple Lisp programs and produce, for example, closed-form expressions for their running time expressed in terms of size of input. This paper presents the reasons for mechanizing program analysis, describes the operation of Metric, explains its implementation, and discusses its limitations.

[1]  John Riordan,et al.  Introduction to Combinatorial Analysis , 1958 .

[2]  John Riordan,et al.  Introduction to Combinatorial Analysis , 1959 .

[3]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[4]  C. V. Ramamoorthy,et al.  Analysis of computational systems: Discrete Markov analysis of computer programs , 1965, ACM '65.

[5]  S. Vaisrub,et al.  A guide for the perplexed. , 1966, Manitoba medical review.

[6]  Clark Weissman,et al.  LISP 1.5 primer , 1967 .

[7]  Daniel G. Bobrow,et al.  Structure of a LISP system using two-level storage , 1967, CACM.

[8]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[9]  C. Cordell Green,et al.  Application of Theorem Proving to Problem Solving , 1969, IJCAI.

[10]  John Cocke,et al.  Programming languages and their compilers: Preliminary notes , 1969 .

[11]  John Cocke,et al.  Programming languages and their compilers , 1969 .

[12]  Boris Beizer,et al.  Analytical techniques for the statistical evaluation of program running time , 1970, AFIPS '70 (Fall).

[13]  Joel Moses,et al.  Algebraic simplification: a guide for the perplexed , 1971, CACM.

[14]  Paul Rovner,et al.  User program measurement in a time-shared environment , 1971, CACM.

[15]  Zohar Manna,et al.  Toward automatic program synthesis , 1971, Symposium on Semantics of Algorithmic Languages.

[16]  Donald E. Knuth,et al.  An empirical study of FORTRAN programs , 1971, Softw. Pract. Exp..

[17]  B. Wegbreit,et al.  A laboratory for the study of automating programming , 1972, SIGS.

[18]  Richard C. T. Lee,et al.  An improved program-synthesizing algorithm and its correctness , 1974, CACM.

[19]  Jacques Cohen,et al.  Two languages for estimating program efficiency , 1974, Commun. ACM.

[20]  Richard Lee Sites,et al.  Proving that computer programs terminate cleanly. , 1974 .