Proceedings of the 20th International Symposium on Principles and Practice of Declarative Programming 2018
DOI: 10.1145/3236950.3236970
|View full text |Cite
|
Sign up to set email alerts
|

Static Performance Guarantees for Programs with Runtime Checks

Abstract: Instrumenting programs for performing run-time checking of properties, such as regular shapes, is a common and useful technique that helps programmers detect incorrect program behaviors. This is specially true in dynamic languages such as Prolog. However, such run-time checks inevitably introduce run-time overhead (in execution time, memory, energy, etc.). Several approaches have been proposed for reducing such overhead, such as eliminating the checks that can statically be proved to always succeed, and/or opt… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
3
0

Year Published

2018
2018
2023
2023

Publication Types

Select...
3
2
2

Relationship

5
2

Authors

Journals

citations
Cited by 8 publications
(4 citation statements)
references
References 53 publications
0
3
0
Order By: Relevance
“…The Ciao model can be considered an antecedent of the now popular gradual-and hybrid-typing approaches (Flanagan 2006;Siek and Taha 2006;Rastogi et al 2015). Moreover, recent work by Stulova et al (2018a;2018b) illustrates further that these techniques and the exploitation of local data invariants allow maintaining strong safety guarantees with zero or very low (and potentially guaranteed (Klemen et al 2018)) run-time checking overheads, even in a reusable-library context, without requiring switching to strong typing. This approach is also more natural in Prolog-style languages that distinguish between erroneous and failed (backtracking) executions.…”
Section: Related Workmentioning
confidence: 99%
“…The Ciao model can be considered an antecedent of the now popular gradual-and hybrid-typing approaches (Flanagan 2006;Siek and Taha 2006;Rastogi et al 2015). Moreover, recent work by Stulova et al (2018a;2018b) illustrates further that these techniques and the exploitation of local data invariants allow maintaining strong safety guarantees with zero or very low (and potentially guaranteed (Klemen et al 2018)) run-time checking overheads, even in a reusable-library context, without requiring switching to strong typing. This approach is also more natural in Prolog-style languages that distinguish between erroneous and failed (backtracking) executions.…”
Section: Related Workmentioning
confidence: 99%
“…This analysis was extended to be fully based on abstract interpretation [12] and integrated into the PLAI multi-variant framework, leading to contextsensitive resource analyses [59]. Other extensions include static profiling [43], static bounding of run-time checking overhead [38], or analysis of parallel programs [37]. Other applications include the previously mentioned analyses of platform-dependent properties such as time or energy [39][40][41][42]47,50,51].…”
Section: Related Workmentioning
confidence: 99%
“…Note that almost all current abstract interpretation systems assume in their semantics that the run-time checks will be run. However, due to efficiency considerations, assertion checking in often turned off in production code, specially for complex properties [16]. To the best of our knowledge this is the first precise description of how such annotations are processed within a standard parametric and multivariant fixpoint algorithm, and of their effects on analysis results.…”
Section: Introductionmentioning
confidence: 99%