Verified Compilation of Floating-Point Computations

被引:0
|
作者
Sylvie Boldo
Jacques-Henri Jourdan
Xavier Leroy
Guillaume Melquiond
机构
[1] Université Paris-Sud,Inria, LRI, CNRS UMR 8623
[2] Inria Paris-Rocquencourt,undefined
[3] Domaine de Voluceau,undefined
来源
关键词
Floating-point arithmetic; Compiler verification; Semantic preservation; CompCert; Coq;
D O I
暂无
中图分类号
学科分类号
摘要
Floating-point arithmetic is known to be tricky: roundings, formats, exceptional values. The IEEE-754 standard was a push towards straightening the field and made formal reasoning about floating-point computations easier and flourishing. Unfortunately, this is not sufficient to guarantee the final result of a program, as several other actors are involved: programming language, compiler, and architecture. The CompCert formally-verified compiler provides a solution to this problem: this compiler comes with a mathematical specification of the semantics of its source language (a large subset of ISO C99) and target platforms (ARM, PowerPC, x86-SSE2), and with a proof that compilation preserves semantics. In this paper, we report on our recent success in formally specifying and proving correct CompCert’s compilation of floating-point arithmetic. Since CompCert is verified using the Coq proof assistant, this effort required a suitable Coq formalization of the IEEE-754 standard; we extended the Flocq library for this purpose. As a result, we obtain the first formally verified compiler that provably preserves the semantics of floating-point programs.
引用
收藏
页码:135 / 163
页数:28
相关论文
共 50 条
  • [1] Verified Compilation of Floating-Point Computations
    Boldo, Sylvie
    Jourdan, Jacques-Henri
    Leroy, Xavier
    Melquiond, Guillaume
    [J]. JOURNAL OF AUTOMATED REASONING, 2015, 54 (02) : 135 - 163
  • [2] Termination of Floating-Point Computations
    Alexander Serebrenik
    Danny De Schreye
    [J]. Journal of Automated Reasoning, 2005, 34 : 141 - 177
  • [3] Termination of floating-point computations
    Serebrenik, A
    De Schreye, D
    [J]. JOURNAL OF AUTOMATED REASONING, 2005, 34 (02) : 141 - 177
  • [4] The pitfalls of verifying floating-point computations
    Monniaux, David
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2008, 30 (03):
  • [5] Faithfully Rounded Floating-point Computations
    Lange, Marko
    Rump, Siegfried M.
    [J]. ACM TRANSACTIONS ON MATHEMATICAL SOFTWARE, 2020, 46 (03):
  • [6] Symbolic execution of floating-point computations
    Botella, Bernard
    Gotlieb, Arnaud
    Michel, Claude
    [J]. SOFTWARE TESTING VERIFICATION & RELIABILITY, 2006, 16 (02): : 97 - 121
  • [7] Floating-point computations on reconfigurable computers
    Morris, Gerald R.
    [J]. PROCEEDINGS OF THE HPCMP USERS GROUP CONFERENCE 2007, 2007, : 339 - 344
  • [8] An Interval Compiler for Sound Floating-Point Computations
    Rivera, Joao
    Franchetti, Franz
    Puschel, Markus
    [J]. CGO '21: PROCEEDINGS OF THE 2021 IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO), 2021, : 52 - 64
  • [9] A hardware error estimate for floating-point computations
    Lang, Tomas
    Bruguera, Javier D.
    [J]. ADVANCED SIGNAL PROCESSING ALGORITHMS, ARCHITECTURES, AND IMPLEMENTATIONS XVIII, 2008, 7074
  • [10] Secure multiparty computations in floating-point arithmetic
    Guo, Chuan
    Hannun, Awni
    Knott, Brian
    van der Maaten, Laurens
    Tygert, Mark
    Zhu, Ruiyu
    [J]. INFORMATION AND INFERENCE-A JOURNAL OF THE IMA, 2022, 11 (01) : 103 - 135