2009
DOI: 10.1145/1543135.1542518
|View full text |Cite
|
Sign up to set email alerts
|

Control-flow refinement and progress invariants for bound analysis

Abstract: Symbolic complexity bounds help programmers understand the performance characteristics of their implementations. Existing work provides techniques for statically determining bounds of procedures with simple control-flow. However, procedures with nested loops or multiple paths through a single loop are challenging.In this paper we describe two techniques, control-flow refinement and progress invariants, that together enable estimation of precise bounds for procedures with nested and multi-path loops. Control-fl… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

1
19
0
1

Year Published

2010
2010
2021
2021

Publication Types

Select...
5
1
1

Relationship

0
7

Authors

Journals

citations
Cited by 37 publications
(22 citation statements)
references
References 29 publications
1
19
0
1
Order By: Relevance
“…The third and last connection with previous work is related to the WCCC computation. The method of Gulwani et al [24,23] for proving termination and bounding the complexity consists in creating counters -new variables which are incremented when traversing some transitions -and asking an invariant generator for bounds on the counter values. An elaborate system is proposed for selecting the transitions to be counted, which necessitates repeated calls to the invariant generator.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…The third and last connection with previous work is related to the WCCC computation. The method of Gulwani et al [24,23] for proving termination and bounding the complexity consists in creating counters -new variables which are incremented when traversing some transitions -and asking an invariant generator for bounds on the counter values. An elaborate system is proposed for selecting the transitions to be counted, which necessitates repeated calls to the invariant generator.…”
Section: Related Workmentioning
confidence: 99%
“…As our ranking function shows, the "outer" counter should be placed either on the transition from lbl 5 to lbl 6 or on the transition from lbl 6 to lbl 10 . Or the graph must be transformed as proposed in [23], but with a risk of complexity increase. We believe that our work bridges the gap between techniques based on the placement of counters and the use of abstract interpretation to bound them, and techniques based on global ranking functions to derive complexity bounds.…”
Section: Related Workmentioning
confidence: 99%
“…[8,9,14,21,22]), on one hand, and quantitative analysis (e.g. [11,12,[23][24][25][26]), on the other, are currently subject of intensive research (see [27] for a detailed account). Nevertheless, we are not aware of any other integrated tool-suite, like ours, able to generate scoped-memory regions and method-level certificates of memory usage.…”
Section: Related Workmentioning
confidence: 99%
“…The closest related works are those of Chin et al [25,28], Albert et al [23,24], and Gulwani et al [26,29]. The work of Chin relies on a type system and Presburger arithmetic.…”
Section: Related Workmentioning
confidence: 99%
“…Finding such inefficiencies can be naturally thought of as a testing problem, where special test strategies (e.g., worst-case complexity testing [7]) may need to be created to evaluate how efficient a specific implementation is. It is also possible to employ sophisticated program analysis techniques, such as those developed in the SPEED project [11,15,14,12,13], to compute symbolic resource bounds for program components, which can provide useful insights into how they perform as a function of their inputs and can produce early warnings about potential performance problems.…”
Section: Introductionmentioning
confidence: 99%