Zurück zur Übersicht

Begriff

CBMC (C Bounded Model Checker)

Computer Science Tools S4
2 Quellen 0 Lernpfade 1 Backlink enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Frama-C analysiert Intervalle. CBMC geht einen anderen Weg: Es simuliert den Code symbolisch. Es rollt Schleifen auf ("Tu dies max 10 mal"). Es wandelt den C-Code in eine gigantische boolesche Formel um (SAT). x = y + 2 wird zu Logik-Gattern. Dann fragt es einen SAT-Solver: "Gibt es Inputs, die assert(x > 0) verletzen?" Wenn ja, gibt es dir den exakten Trace (Gegenbeispiel). "Wenn Input A=5 und B=-1, dann Crash in Zeile 42". Extrem präzise für Low-Level Bugs (Buffer Overflows).

Merksatz: Ein Bounded Model Checker für C und C++, der Programme und Assertions in logische Formeln übersetzt und mittels SAT/SMT-Solvern nach Fehlern sucht (bis zu einer begrenzten Schleifentiefe).


Quick-Check

  1. CBMC vs Frama-C?
    CBMC: Findet Bugs schnell (Bug Hunting). Gut für CI/CD. Frama-C: Beweist Korrektheit (Safety). Gut für Zertifizierung.
  2. Kann es C++?
    Ja, aber C++ ist ein Biest. Die Unterstützung ist komplexer.
  3. Daniel Kroening?
    Prof in Oxford (und dann Amazon). Einer der Päpste des Model Checkings.