Communications of the ACM
Two languages for estimating program efficiency
Communications of the ACM
Communications of the ACM
FP with data abstraction and strong typing
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
Goal-Directed Program Transformation
IEEE Transactions on Software Engineering
Strictness analysis aids time analysis
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Resource bound analysis for database queries
Proceedings of the third ACM SIGPLAN workshop on Programming languages and analysis for security
Hi-index | 0.00 |
There has been a great deal of research done which investigates the problem of evaluating the complexity of particular algorithms; little effort however has been applied to the mechanization of this evaluation. This paper presents the ACE (for Automatic Complexity Evaluator) system which is able to analyse reasonably large programs like sorting programs or numerical programs in a fully mechanical way. A complexity function is derived from the initial program. This function is then automatically transformed into its non-recursive equivalent according to MacCarthy's recursion induction principle, using a pre-defined library of recursive definitions (for example id, length, exponential ...). As the execution time is not a decidable property, this transformation will not be possible in all cases. The richer the pre-defined library is, the more likely the system is to succeed. The paper presents the reasons for mechanizing complexity calculus and the problems involved. It describes the operations performed by ACE and its implementation; limitations and further improvements are discussed in conclusion.