The concept of a supercompiler
ACM Transactions on Programming Languages and Systems (TOPLAS) - The MIT Press scientific computation series
Structure and interpretation of computer programs
Structure and interpretation of computer programs
The SCHEME programming language
The SCHEME programming language
ACE: an automatic complexity evaluator
ACM Transactions on Programming Languages and Systems (TOPLAS)
The synthesizer generator: a system for constructing language-based editors
The synthesizer generator: a system for constructing language-based editors
Reasoning About Time in Higher-Level Language Software
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
Machine Characterization Based on an Abstract High-Level Language Machine
IEEE Transactions on Computers
Analysis of pointers and structures
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Experiments with a Program Timing Tool Based on Source-Level Timing Schema
Computer - Special issue on real-time systems
Automatic average-case analysis of algorithms
Theoretical Computer Science - Theme issue on the algebraic and computing treatment of noncommutative power series
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Predicting program execution times by analyzing static and dynamic program paths
Real-Time Systems - Special issue: Real-time languages and language-level timing tools and analysis
Value dependence graphs: representation without taxation
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Systematic derivation of incremental programs
Science of Computer Programming
Worst-case space and time complexity of recursive procedures
Real-Time Systems
Analysis of benchmark characteristics and benchmark performance prediction
ACM Transactions on Computer Systems (TOCS)
An introduction to partial evaluation
ACM Computing Surveys (CSUR)
Computing Maximum Task Execution Times — A Graph-BasedApproach
Real-Time Systems
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
The art of computer programming, volume 1 (3rd ed.): fundamental algorithms
Static caching for incremental computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Live memory analysis for garbage collection in embedded systems
Proceedings of the ACM SIGPLAN 1999 workshop on Languages, compilers, and tools for embedded systems
Efficient and Precise Cache Behavior Prediction for Real-TimeSystems
Real-Time Systems
Computer-assisted microanalysis of programs
Communications of the ACM
The size-change principle for program termination
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Communications of the ACM
Efficiency by Incrementalization: An Introduction
Higher-Order and Symbolic Computation
Automatic Accurate Live Memory Analysis for Garbage-Collected Languages
OM '01 Proceedings of the 2001 ACM SIGPLAN workshop on Optimization of middleware and distributed systems
Program improvement by internal specialization
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Definition of Standard ML
Data-Flow Frameworks for Worst-Case Execution Time Analysis
Real-Time Systems
Revised Report on the Algorithmic Language Scheme
Higher-Order and Symbolic Computation
An Accurate Worst Case Timing Analysis for RISC Processors
IEEE Transactions on Software Engineering
Deriving Annotations for Tight Calculation of Execution Time
Euro-Par '97 Proceedings of the Third International Euro-Par Conference on Parallel Processing
Automatic Accurate Time-Bound Analysis for High-Level Languages
LCTES '98 Proceedings of the ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Embedded Systems
Integrating Path and Timing Analysis Using Instruction-Level Simulation Techniques
LCTES '98 Proceedings of the ACM SIGPLAN Workshop on Languages, Compilers, and Tools for Embedded Systems
Complexity Analysis for a Lazy Higher-Order Language
ESOP '90 Proceedings of the 3rd European Symposium on Programming
Lambda - Upsilon - Omega: An Assistant Algorithms Analyzer
AAECC-6 Proceedings of the 6th International Conference, on Applied Algebra, Algebraic Algorithms and Error-Correcting Codes
Bounding Loop Iterations for Timing Analysis
RTAS '98 Proceedings of the Fourth IEEE Real-Time Technology and Applications Symposium
Worst-case execution times analysis of MPEG-2 decoding
Euromicro-RTS'00 Proceedings of the 12th Euromicro conference on Real-time systems
Dynamic Programming via Static Incrementalization
Higher-Order and Symbolic Computation
Optimized Live Heap Bound Analysis
VMCAI 2003 Proceedings of the 4th International Conference on Verification, Model Checking, and Abstract Interpretation
Optimizing Ackermann's function by incrementalization
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Hi-index | 14.98 |
This paper describes a language-based approach for automatic and accurate cost-bound analysis. The approach consists of transformations for building cost-bound functions in the presence of partially known input structures, symbolic evaluation of the cost-bound function based on input size parameters, and optimizations to make the overall analysis efficient as well as accurate, all at the source-language level. The calculated cost bounds are expressed in terms of primitive cost parameters. These parameters can be obtained based on the language implementation or can be measured conservatively or approximately, yielding accurate, conservative, or approximate time or space bounds. We have implemented this approach and performed a number of experiments for analyzing Scheme programs. The results helped confirm the accuracy of the analysis.