Skip to content
SPECIFICTION
Get listed

CBMC vs Understand

CBMC

cprover.org

Understand

scitools.com

Side by side

FigureCBMCUnderstand
Price fromFree$100/mo
Free planYes—
Free trial—Yes
Open source——
WindowsYesYes
macOSYesYes
LinuxYesYes
API—Yes
Self-hosted—Yes
Plans published12
Spec score · C and C++ Static Analysis Tools8.7 (#2)8.4 (#6)
Language supportCBMC supports C89, C99, most C11/C17 and compiler extensions from GCC, Clang and Visual Studio.Supported languages include C/C++, C#, Fortran, Java, Python, Rust, VHDL, Visual Basic, and web languages including HTML, CSS, JavaScript, TypeScript, PHP, and XML.
SupportThe CBMC page directs questions to Daniel Kroening, and the CPROVER manual links to Google Groups support and announcements.SciTools provides product support by email and lists office hours Monday through Friday, 9 AM–5 PM Mountain Time.

Plans

CBMC

  • CBMCFree

CBMC pricing →

Understand

  • Understand subscription$100 a month
  • Understand annual subscriptionPrice not published

Understand pricing →

In their own words

CBMC

CBMC is a bounded model checker for C and C++ programs, available for Linux, macOS, and Windows. It checks memory safety, including array bounds and pointer use, along with several forms of undefined behavior and user-specified assertions. Its language range includes C89, C99, most of C11 and C17, and extensions from GCC, Clang, and Visual Studio. CBMC verifies by unwinding program loops and passing the resulting equation to a decision procedure. It can check C and C++ I/O equivalence with languages such as Verilog, and generate test cases for branch, decision, path, and MC/DC coverage. Listed language features include arrays, dynamic memory, nondeterminism, assumptions, assertions, and selected C++ features such as classes, templates, and STL containers. A MiniSat-based bit-vector solver is included; Boolector, CVC5, and Z3 are supported but must be installed separately. CBMC is free at free under a BSD 4-clause license. The Windows and macOS distributions are command-line tools without a GUI.

Visit cprover.org

Understand

Understand is a static analysis and code-comprehension tool from SciTools. It builds a cross-referenced model of source code without executing it, then helps users explore relationships through its Information Browser, call trees, dependency analysis, and visual graphs, including butterfly and control-flow views. It also provides metrics, CodeCheck, version comparison, APIs, a command-line interface, and AI chat. Supported languages include C/C++, C#, Fortran, Java, Python, Rust, VHDL, Visual Basic, and web languages such as HTML, CSS, JavaScript, TypeScript, PHP, and XML. It runs on Windows 11, specified Linux distributions, and macOS Monterey or later; command-line automation, CI, and an official Docker image are also available. The VS Code extension is separately licensed. Local AI keeps code and prompts on the user's hardware, while cloud AI sends requests with code context to the selected provider. Offline use is supported with offline licensing. Pricing includes a free plan and paid subscriptions from $100/user/mo (annual).

Visit scitools.com