CBMC vs Understand
CBMC
cprover.orgUnderstand
scitools.comSide by side
| Figure | CBMC | Understand |
|---|---|---|
| Price from | Free | $100/mo |
| Free plan | Yes | — |
| Free trial | — | Yes |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| API | — | Yes |
| Self-hosted | — | Yes |
| Plans published | 1 | 2 |
| Spec score · C and C++ Static Analysis Tools | 8.7 (#2) | 8.4 (#6) |
| Language support | CBMC 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. |
| Support | The 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
Understand
- Understand subscription$100 a month
- Understand annual subscriptionPrice not published
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.
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).