TY - GEN
T1 - Formalizing an Efficient Runtime Assertion Checker for an Arithmetic Language with Functions and Predicates
AU - Benjamin, Thibaut
AU - Signoles, Julien
N1 - Publisher Copyright:
© 2023 ACM.
PY - 2023/3/27
Y1 - 2023/3/27
N2 - 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.
AB - 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.
U2 - 10.1145/3555776.3577617
DO - 10.1145/3555776.3577617
M3 - Conference contribution
AN - SCOPUS:85162926732
T3 - Proceedings of the ACM Symposium on Applied Computing
SP - 1673
EP - 1680
BT - Proceedings of the 38th ACM/SIGAPP Symposium on Applied Computing, SAC 2023
PB - Association for Computing Machinery
T2 - 38th Annual ACM Symposium on Applied Computing, SAC 2023
Y2 - 27 March 2023 through 31 March 2023
ER -