Reducing the Overhead of Assertion Run-time Checks via Static Analysis

被引:7
|
作者
Stulova, Nataliia [1 ]
Morales, Jose F. [1 ]
Hermenegildo, Manuel V. [1 ,2 ]
机构
[1] IMDEA Software Inst, Madrid, Spain
[2] Tech Univ Madrid UPM, Sch Comp Sci, Madrid, Spain
关键词
Abstract Interpretation; Assertions; Run-time Checking; Verification; Logic Programming; Horn Clauses; ABSTRACT INTERPRETATION; VERIFICATION; SPECIFICATION; PROGRAMS; LANGUAGE; CIAO;
D O I
10.1145/2967973.2968597
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
In order to aid in the process of detecting incorrect program behaviors, a number of approaches have been proposed which include a combination of language-level constructs (such as procedure-level assertions/contracts, program-point assertions, gradual types, etc.) and associated tools (such as code analyzers and run-time verification frameworks). However, it is often the case that these constructs and tools are not used to their full extent in practice due to a number of limitations such as excessive run-time overhead and/or limited expressiveness. Verification frameworks that combine static and dynamic techniques offer the potential to bridge this gap. In this paper we explore the effectiveness of abstract interpretation in detecting parts of program specifications that can be statically simplified to true or false, as well as the impact of such analysis in reducing the cost of the run-time checks required for the remaining parts of these specifications. Starting with a semantics for programs with assertion checking, and for assertion simplification based on static analysis information, we propose and study a number of practical assertion checking modes, each of which represents a trade-off between code annotation depth, execution time slowdown, and program safety. We also propose techniques for taking advantage of the run-time checking semantics to improve the precision of the analysis. Finally, we study experimentally the performance of these techniques. Our experiments illustrate the benefits and costs of each of the assertion checking modes proposed as well as the benefit of analysis for these scenarios.
引用
收藏
页码:90 / 103
页数:14
相关论文
共 50 条
  • [1] Some trade-offs in reducing the overhead of assertion run-time checks via static analysis
    Stulova, Nataliia
    Morales, Jose F.
    Hermenegildo, Manuel V.
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2018, 155 : 3 - 26
  • [2] Techniques for reducing the overhead of run-time parallelization
    Yu, H
    Rauchwerger, L
    [J]. COMPILER CONSTRUCTION, PROCEEDINGS, 2000, 1781 : 232 - 248
  • [3] Static Performance Guarantees for Programs with Run-time Checks
    Klemen, Maximiliano
    Stulova, Nataliia
    Lopez-Garcia, Pedro
    Morales, Jose
    Hermenegildo, Manuel V.
    [J]. PPDP'18: PROCEEDINGS OF THE 20TH INTERNATIONAL SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING, 2018,
  • [4] On the effectiveness of run-time checks
    van der Meulen, MJP
    Strigini, L
    Revilla, MA
    [J]. COMPUTER SAFETY, RELIABILITY, AND SECURITY, PROCEEDINGS, 2005, 3688 : 151 - 164
  • [5] A parallel configuration model for reducing the run-time reconfiguration overhead
    Qu, Yang
    Soininen, Juha-Pekka
    Nurmi, Jari
    [J]. 2006 DESIGN AUTOMATION AND TEST IN EUROPE, VOLS 1-3, PROCEEDINGS, 2006, : 963 - +
  • [6] Run-Time Assertion Checking with Enfasis
    Olmedo Aguirre, Jose Oscar
    Juarez Martinez, Ulises
    [J]. COMPUTACION Y SISTEMAS, 2010, 13 (03): : 273 - 294
  • [7] Reducing Run-Time Adaptation Space via Analysis of Possible Utility Bounds
    Stevens, Clay
    Bagheri, Hamid
    [J]. 2020 ACM/IEEE 42ND INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2020), 2020, : 1522 - 1534
  • [8] MESA: Reducing cache conflicts by integrating static and run-time methods
    Ding, Xiaoning
    Nikolopoulos, Dimitrios S.
    Jiang, Song
    Zhang, Xiaodong
    [J]. ISPASS 2006: IEEE INTERNATIONAL SYMPOSIUM ON PERFORMANCE ANALYSIS OF SYSTEMS AND SOFTWARE, 2006, : 189 - +
  • [9] Assessing Run-time Overhead of Securing Kepler
    Kim, Donghoon
    Vouk, Mladen A.
    [J]. INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE 2016 (ICCS 2016), 2016, 80 : 2281 - 2286
  • [10] A static analysis method for run-time errors detection
    Cao, WJ
    Xu, SH
    Shi, ZG
    [J]. ISTM/2005: 6th International Symposium on Test and Measurement, Vols 1-9, Conference Proceedings, 2005, : 6615 - 6618