Formalizing an Efficient Runtime Assertion Checker for an Arithmetic Language with Functions and Predicates

被引:2
作者
Benjamin, Thibaut [1 ]
Signoles, Julien [1 ]
机构
[1] Univ Paris Saclay, CEA, List, Palaiseau, France
来源
38TH ANNUAL ACM SYMPOSIUM ON APPLIED COMPUTING, SAC 2023 | 2023年
关键词
D O I
10.1145/3555776.3577617
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
Runtime Assertion Checking (RAC) is a lightweight formal method that verifies formal code annotations, typically assertions, at runtime. The main RAC challenge consists in generating code that is both sound and efficient for checking expressive properties. In particular, checking formal arithmetic properties usually requires to use machine integer arithmetic to be efficient, but needs to rely on an exact yet slower arithmetic library to be sound. This paper formalizes an efficient RAC tool for arithmetic properties, which may include user-defined functions and predicates. Efficient code generation for these routines is based on specialization, allowing to generate efficient functions using machine arithmetic when possible, or slower functions relying on exact arithmetic, according to the calling context. This formalization is implemented in E-ACSL, a runtime assertion checker for C programs.
引用
收藏
页码:1673 / 1680
页数:8
相关论文
共 29 条
  • [1] Andersen L. O., 1992, INT C COMP CONSTR CC
  • [2] COMPILER TRANSFORMATIONS FOR HIGH-PERFORMANCE COMPUTING
    BACON, DF
    GRAHAM, SL
    SHARP, OJ
    [J]. ACM COMPUTING SURVEYS, 1994, 26 (04) : 345 - 420
  • [3] Barnett M., 2011, Commun
  • [4] Formally Verified Speculation and Deoptimization in a JIT Compiler
    Barriere, Aurele
    Blazy, Sandrine
    Fluckiger, Olivier
    Pichardie, David
    Vitek, Jan
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2021, 5 (POPL):
  • [5] The Dogged Pursuit of Bug-Free C Programs: The Frama-C Software Analysis Platform
    Baudin, Patrick
    Bobot, Francois
    Buhler, David
    Correnson, Loic
    Kirchner, Florent
    Kosmatov, Nikolai
    Maroneze, Andre
    Perrelle, Valentin
    Prevosto, Virgile
    Signoles, Julien
    Williams, Nicky
    [J]. COMMUNICATIONS OF THE ACM, 2021, 64 (08) : 56 - 68
  • [6] Benjamin Thibaut, 2022, JOURNEES FRANCOPHONE
  • [7] Bertot Yves, 2013, Interactive theorem proving and program development: Coq'Art: the calculus of inductive constructions
  • [8] A Lesson on Verification of IoT Software with Frama-C
    Blanchard, Allan
    Kosmatov, Nikolai
    Loulergue, Frederic
    [J]. PROCEEDINGS 2018 INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING & SIMULATION (HPCS), 2018, : 21 - 30
  • [9] Blazy S, 1994, WORKSH PROGR COMPR
  • [10] Cheon Y., 2003, Ph.D. thesis