C* is a proof-integrated language design that extends the C programming language with built-in verification capabilities. This extension is powered by a symbolic execution engine and an LCF-style proof kernel, allowing for the direct integration of formal verification into the development workflow.
The primary goal of C* is to bridge the gap between programming and verification environments. Currently, conventional programmers are rarely involved in verifying their own code, leading to increased development and maintenance costs for verified software. C* addresses this by enabling programmers to embed proof-code blocks alongside implementation code, facilitating interactive updates to the proof state in real-time.
C* offers expressive and extensible proof support, allowing users to create reusable libraries of logical definitions, theorems, and programmable proof automation. A key aspect of C* is its use of C as the common language for both implementation and proof code development, unifying these two processes.
A prototype of C* was implemented and evaluated using a benchmark of small C programs and a complex real-world case study: the attach function of pKVM's buddy allocator. The evaluation demonstrated that C* supports the verification of a broad range of C programming idioms and can handle complex reasoning tasks in practical scenarios.
✨ This summary was generated by AI from the outlets' reporting listed below. It is not independently verified and may contain errors — check the original sources. How BrevFeed works →
One email each morning: the day's tech stories, clustered across outlets and summarized. No account needed.
One email a day. Unsubscribe in one click, any time.
Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.
▶ Play today's briefNew every morning, and the back catalogue is archived by date.
Researchers introduced C*, a new language design that integrates formal verification capabilities directly into C programming. This development aims to reduce the disconnect between programming and verification practices, making it easier for developers to verify their own code.