HeadlinesBriefing favicon HeadlinesBriefing.com

C*: Programmierung und Verifikation in C vereint

Hacker News •
×

Die Autoren Yiyuan Cao, Jiayi Zhuang, Houjin Chen, Jinkai Fan, Wenbo Xu, Zhiyi Wang, Di Wang, Qinxiang Cao, Yingfei Xiong, Haiyan Zhao und Zhenjiang Hu stellen C* vor, ein sprachdesign mit integriertem Beweis für die C-Programmierung. C* erweitert C um Verifikationsfunktionen, die von einer symbolischen Ausführungs-Engine und einem LCF-stiligen Beweiskern angetrieben werden. Es ermöglicht Echtzeit-Verifikation, indem es Programmierern erlaubt, Beweis-Code-Blöcke neben Implementierungscode einzubetten, was interaktive Aktualisierungen des aktuellen Beweiszustands erleichtert.

Seine ausdrucksstarke und erweiterbare Beweisunterstützung erlaubt es Benutzern, wiederverwendbare Bibliotheken logischer Definitionen, Theoreme und programmierbarer Beweisautomatisierung zu erstellen. Entscheidend ist, dass C* die Entwicklung von Implementierungs- und Beweiscode vereinheitlicht, indem es C als gemeinsame Sprache verwendet. Das Team implementierte einen Prototyp und evaluierte ihn an einem repräsentativen Benchmark kleiner C-Programme und einer anspruchsvollen realen Fallstudie: der attach-Funktion des p KVM Buddy-Allocators.

Die Ergebnisse zeigen, dass C* die Verifikation eines breiten Teilsatzes von C-Programmieridiomen unterstützt und komplexe Schlussfolgerungsaufgaben in realen Szenarien effektiv bewältigt.