ACE: an automatic complexity evaluator
- 1 April 1988
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 10 (2) , 248-266
- https://doi.org/10.1145/42190.42347
Abstract
There has been a great deal of research done on the evaluation of the complexity of particular algorithms; little effort, however, has been devoted to the mechanization of this evaluation. The ACE (Automatic Complexity Evaluator) system is able to analyze reasonably large programs, like sorting programs, in a fully mechanical way. A time-complexity function is derived from the initial functional program. This function is transformed into its nonrecursive equivalent according to MacCarthy's recursion induction principle, using a predefined library of recursive definitions. As the complexity is not a decidable property, this transformation will not be possible in all cases. The richer the predefined library is, the more likely the system is to succeed. The operations performed by ACE are described and the use of the system is illustrated with the analysis of a sorting algorithm. Related works and further improvements are discussed in the conclusion.Keywords
This publication has 10 references indexed in Scilit:
- Computer-assisted microanalysis of programsCommunications of the ACM, 1982
- On the Development of the Algebra of Functional ProgramsACM Transactions on Programming Languages and Systems, 1982
- A System for Assisting Program TransformationACM Transactions on Programming Languages and Systems, 1982
- The algebra of functional programs: Function level reasoning, linear equations, and extended definitionsLecture Notes in Computer Science, 1981
- Can programming be liberated from the von Neumann style?Communications of the ACM, 1978
- A Transformation System for Developing Recursive ProgramsJournal of the ACM, 1977
- Goal-Directed Program TransformationIEEE Transactions on Software Engineering, 1976
- A system which automatically improves programsActa Informatica, 1976
- Mechanical program analysisCommunications of the ACM, 1975
- Inductive methods for proving properties of programsCommunications of the ACM, 1973