FREEDOM251

Freedom251 › C and C++ Static Analysis Tools

Frama-C

Free plan LinuxMacWindows

Visit Frama-C Alternatives

Frama-C's own site

What Frama-C is

Frama-C is a free, self-hosted platform of plug-ins for analyzing C programs and checking them against specifications. Its analyzers share a kernel, program representation, and ACSL language, so results can be combined sequentially or in parallel. Eva applies abstract interpretation to identify supported possible runtime errors, including invalid memory access and integer overflow; it analyzes sequential code but not recursive calls. WP checks ACSL contracts across possible executions using weakest-precondition reasoning and external provers or proof assistants. E-ACSL turns executable annotations into C code for runtime checks, although some ACSL constructs cannot be translated. The main distribution includes Eva, WP, E-ACSL, and other analyzers; some specialized plug-ins are separate, proprietary, archived, or have limited support. Frama-C runs on Linux, macOS, and Windows and is available under the LGPL, with dual licensing possible for other uses. The platform is used in teaching, experimental research, and industrial applications, including safety- and security-critical work. Support options include technical support, training, tutorials, hackathons, extensions, customization, and community channels.

Who it suits

Frama-C suits C developers, educators, researchers, and industrial teams working with program analysis or functional verification. Its use in safety- and security-critical applications may also make it relevant to teams handling certification work.

What it does well

  • Free and available for Linux, macOS, and Windows.
  • Eva reports supported possible runtime errors.
  • WP checks ACSL contracts across possible executions.
  • Analyzers can combine results sequentially or in parallel.
  • Plug-in development can extend or modify analyses.

What to know first

  • Eva analyzes sequential code only.
  • Eva does not support recursive calls.
  • Some ACSL constructs cannot be translated by E-ACSL.
  • Some specialized plug-ins are separate or proprietary.

Limits

Eva analyzes only sequential code and does not support recursive calls. E-ACSL cannot translate all ACSL constructs, and some specialized plug-ins are proprietary or separately distributed.

Getting started

  1. Visit the Frama-C website.
  2. Choose the Linux, macOS, or Windows platform.
  3. Use the free software under its LGPL licensing.
  4. Select analyzers from the main distribution, such as Eva, WP, or E-ACSL.
  5. Write ACSL annotations when using contract-based specification or runtime checking.

Verdict

Frama-C offers several complementary analysis approaches for C, from runtime-error detection to contract-based proof and runtime checking. Its limitations around recursion, sequential analysis, and annotation translation matter when choosing which plug-ins fit a codebase.

Questions

Is Frama-C free?

Yes. It is available as free software under the LGPL; dual licensing is possible for other uses.

Which operating systems does it support?

Frama-C lists Linux, macOS, and Windows.

What programming language does it analyze?

Its input languages are C and ACSL, the annotation language used for specifications.

What does Eva do?

Eva uses abstract interpretation to report supported possible runtime errors, including invalid memory accesses and integer overflows. It analyzes sequential code and does not support recursive calls.

Which provers can WP use?

WP recommends Alt-Ergo, Coq, Z3, and CVC4, and supports other provers available through Why3.

Who develops Frama-C?

It is co-developed at CEA LIST and the Inria Saclay–Île-de-France Toccata team, in common with LRI-CNRS and Université Paris-Sud 11.

Facts from Frama-C's own pages

ACSL
Frama-C uses ACSL annotations to specify function contracts and verify conformance to functional specifications. · frama-c.com, 3 Oct 2026
Additional analyzers
The main distribution includes Eva, WP, E-ACSL, and other plug-ins; some specialized plug-ins are proprietary, separately distributed, archived, or have limited support. · frama-c.com, 4 Oct 2026
Architecture
Plug-ins share a kernel, program representation, and ACSL specification language, allowing analyzers to combine results sequentially or in parallel. · frama-c.com, 4 Oct 2026
Audience
The site describes use in teaching, experimental research, and industrial applications, including safety- and security-critical software. · frama-c.com, 4 Oct 2026
Eva analysis
Eva uses abstract interpretation to analyze C programs and report possible runtime errors within the undefined behaviors supported by its analysis. · frama-c.com, 3 Oct 2026
Eva limits
Eva currently does not support recursive calls and analyzes only sequential code. · frama-c.com, 3 Oct 2026
Extensibility
The platform supports development of plug-ins that add analyses or modify existing ones. · frama-c.com, 4 Oct 2026
Formal methods
The platform combines formal-methods-based analyses, most of which the site describes as sound. · frama-c.com, 4 Oct 2026
Functional verification
The WP plug-in uses ACSL specifications and weakest-precondition reasoning to prove functional correctness, with SMT solvers and user-provided annotations. · frama-c.com, 4 Oct 2026
Integrations
WP uses SMT solvers including Alt-Ergo, CVC5, and Z3. · frama-c.com, 4 Oct 2026
Intended users
The site describes Frama-C as used in teaching, experimental research, and industrial applications, including certification work for DO-178, IEC 60880, and Common Criteria EAL 6–7. · frama-c.com, 3 Oct 2026
Licensing
Frama-C is available under LGPL and can be dual-licensed for other uses. · frama-c.com, 3 Oct 2026
Maker
The platform is co-developed at CEA LIST and the Inria Saclay–Île-de-France Toccata team, in common with LRI-CNRS and Université Paris-Sud 11. · frama-c.com, 3 Oct 2026
Platforms
The current download page provides installation instructions for Linux and macOS, and describes Windows use through WSL. · frama-c.com, 4 Oct 2026
Plugin ecosystem
The plugin catalog lists Eva, WP, E-ACSL, and other analyzers in the main distribution, alongside separately distributed and proprietary plugins. · frama-c.com, 3 Oct 2026
Purpose
Frama-C is a framework for modular analysis of C programs using collaborative program analysis plug-ins. · frama-c.com, 4 Oct 2026
Runtime checking
E-ACSL translates executable ACSL annotations into C code for runtime checking, but only supports an executable subset of ACSL. · frama-c.com, 4 Oct 2026
Runtime errors
The Eva plug-in uses abstract interpretation to analyze possible program behaviors and report supported undefined behaviors, including invalid memory accesses and integer overflows. · frama-c.com, 4 Oct 2026
Security use
The site says Frama-C has been used for certification purposes including DO-178, IEC 60880, and Common Criteria EAL 6-7. · frama-c.com, 4 Oct 2026
Support
The project offers technical support, training, tutorial sessions, hackathons, extensions, and customization for commercial or industrial use. · frama-c.com, 4 Oct 2026
WP integrations
WP recommends Alt-Ergo, Coq, Z3, and CVC4, and supports other provers available through Why3. · frama-c.com, 3 Oct 2026
WP proofs
WP checks whether ACSL contracts hold for all possible executions using weakest-precondition calculus and external provers or proof assistants. · frama-c.com, 3 Oct 2026

Where Frama-C stands on Freedom251

Look at these too