Contracts für C: Ein Proof of Concept

2025-09-09
Contracts für C: Ein Proof of Concept

Dieser Artikel untersucht die Möglichkeit, das Konzept der Contracts aus C++ in die Sprache C zu übertragen. Der Autor schlägt eine Lösung mit den Makros `contract_assert` und `contract_assume` für Vor- und Nachbedingungen vor. Das `defer`-Makro und das `unreachable`-Makro aus C23 vereinfachen die Ausdrucksweise von Nachbedingungen. Der Artikel zeigt, wie Inline-Funktionen und Hilfsfunktionen Contract-Prüfungen hinzufügen können, ohne die Kernimplementierung von Funktionen zu verändern, und dabei Compiler-Optimierungen nutzen. Obwohl eine Verfeinerung der Schnittstellenspezifikation noch erforderlich ist, liefert dieser Artikel einen praktikablen Proof of Concept für Contracts in C.

Entwicklung