中文
相关论文

相关论文: Certifying C program correctness with respect to C…

200 篇论文

CHERI-C extends the C programming language by adding hardware capabilities, ensuring a certain degree of memory safety while remaining efficient. Capabilities can also be employed for higher-level security measures, such as software…

计算机科学中的逻辑 · 计算机科学 2023-04-26 Seung Hoon Park , Rekha Pai , Tom Melham

Undefined behavior in C often causes devastating security vulnerabilities. One practical mitigation is compartmentalization, which allows developers to structure large programs into mutually distrustful compartments with clearly specified…

Verified compilers aim to guarantee that compilation preserves the observable behavior of source programs. While small-step semantics are widely used in such compilers, they are not always the most convenient framework for structural…

编程语言 · 计算机科学 2026-02-24 David Knothe , Oliver Bringmann

Large Language Models (LLMs) can generate useful code, but often the code they generate cannot be trusted to be sound. In this paper, we present VerMCTS, an approach to begin to resolve this issue by generating verified programs in Dafny…

Expressive static typing disciplines are a powerful way to achieve high-quality software. However, the adoption cost of such techniques should not be under-estimated. Just like gradual typing allows for a smooth transition from…

编程语言 · 计算机科学 2015-08-25 Éric Tanter , Nicolas Tabareau

We present a self-certifying compiler for the COGENT systems language. COGENT is a restricted, polymorphic, higher-order, and purely functional language with linear types and without the need for a trusted runtime or garbage collector. It…

Modern Just-in-Time compilers (or JITs) typically interleave several mechanisms to execute a program. For faster startup times and to observe the initial behavior of an execution, interpretation can be initially used. But after a while,…

编程语言 · 计算机科学 2022-12-07 Aurèle Barrière , Sandrine Blazy , David Pichardie

Most integrated development environments are shipped with refactoring tools. However, their refactoring operations are often known to be unreliable. As a consequence, developers have to test their code after applying an automatic…

编程语言 · 计算机科学 2016-07-11 Julien Cohen

LLMs can perform multi-step reasoning through Chain-of-Thought (CoT), but they cannot reliably verify their own logic. Even when they reach correct answers, the underlying reasoning may be flawed, undermining trust in high-stakes scenarios.…

This paper presents CREST, a prototype front-end tool intended as an add-on to commercial EDA formal verifcation environments. CREST is an adaptation of the CBMC bounded model checker for C, an academic tool widely used in industry for…

编程语言 · 计算机科学 2019-08-06 Andreas Tiemeyer , Tom Melham , Daniel Kroening , John O'Leary

This paper focuses on formally specifying and verifying the chain of formal semantics of the Esterel synchronous programming language using the Coq proof assistant. In particular, in addition to the standard logical (LBS) semantics,…

形式语言与自动机理论 · 计算机科学 2025-01-08 Gérard Berry , Lionel Rieg

Large Language Models (LLMs) have significantly advanced automated test generation, yet existing methods often rely on ground-truth code for verification, risking bug propagation and limiting applicability in test-driven development. We…

软件工程 · 计算机科学 2026-02-12 Hamed Taherkhani , Alireza DaghighFarsoodeh , Mohammad Chowdhury , Hung Viet Pham , Hadi Hemmati

We present a new way of embedding functional languages into the Coq proof assistant by using meta-programming. This allows us to develop the meta-theory of the language using the deep embedding and provides a convenient way for reasoning…

编程语言 · 计算机科学 2020-02-05 Danil Annenkov , Jakob Botsch Nielsen , Bas Spitters

A desired but challenging property of compiler verification is compositionality, in the sense that the compilation correctness of a program can be deduced incrementally from that of its substructures ranging from statements, functions, and…

编程语言 · 计算机科学 2026-03-31 Zhang Cheng , Jiyang Wu , Di Wang , Qinxiang Cao

Certified program synthesis (aka vericoding) is the process of automatically generating a program, its formal specification, and a machine-checkable proof of their alignment from a natural-language description. Two challenges make…

Symbolic execution is a program analysis technique executing programs with symbolic instead of concrete inputs. This principle allows for exploring many program paths at once. Despite its wide adoption -- in particular for program testing…

编程语言 · 计算机科学 2023-10-13 Arthur Correnson , Dominic Steinhoefel

Automatic software verification tools help to find hard-to-detect faults in programs checked against specified requirements non-interactively. Besides, they can prove program correctness formally under certain assumptions. These…

软件工程 · 计算机科学 2023-09-29 Ilja Zakharov , Evgeny Novikov , Ilya Shchepetkov

Conventional tools for formal hardware/software co-verification use bounded model checking techniques to construct a single monolithic propositional formula. Formulas generated in this way are extremely complex and contain a great deal of…

形式语言与自动机理论 · 计算机科学 2020-01-07 Rajdeep Mukherjee , Saurabh Joshi , John O'Leary , Daniel Kroening , Tom Melham

Applying deductive verification to formally prove that a program respects its formal specification is a very complex and time-consuming task due in particular to the lack of feedback in case of proof failures. Along with a non-compliance…

软件工程 · 计算机科学 2015-08-10 Guillaume Petiot , Nikolai Kosmatov , Bernard Botella , Alain Giorgetti , Jacques Julliand

OCaml is particularly well-fitted for formal verification. On one hand, it is a multi-paradigm language with a well-defined semantics, allowing one to write clean, concise, type-safe, and efficient code. On the other hand, it is a language…

计算机科学中的逻辑 · 计算机科学 2021-09-07 Mário Pereira , António Ravara