eclair


Eclair

A flexible and extensible framework for the analysis of C and C++ source-code. Among the many possible applications, ECLAIR automatically finds violations of coding rules, either user-defined or taken from popular coding standards such as MISRA C/C++, High-Integrity C++, CERT C/C++, JSF C++, Netrino Embedded C.

  • Toolchain Component Interceptor

    Allows seamless integration with any build system: currently supports toolchains based on GCC, Intel C/C++, Microsoft Visual Studio, CodeWarrior and Green Hills compilers.

  • Source Parser

    Parses more than 100k lines of C/C++ code per second on common laptop hardware with each token completely traceable to its exact location in the source.

  • Semantic Analysis Engine

    Will perform the precise and correct tracking of pointers and numerical (integer and floating point) data objects. The precision/analysis-time ratio will be tunable to the user’s needs and verification activities (routine usage by programmers and over-night verification will be equally supported).

  • Persistence Layer for Whole-Program Coding Rules

    Provides a service so that data collected when examining single translation units is available for whole-program verification in the linking phase.

  • Compilation Unit Internal Representation

    A carefully designed data structure capturing both syntactic and semantic information. It comes with multiple interfaces supporting the coding of program manipulation and verification tasks, always at the right level of abstraction.

  • Predefined Coding Rules

    The most popular sets of coding rules are supported together with useful BUGSENG rules distilled from BUGSENG’s experience in the production of reliable software.

  • User-Defined Coding Rules

    Can be specified in a very high-level language using a large library of services: this greatly simplifies the enforcement of project-specific coding rules.

  • Coding Rules Violation Reports

    A high-level representation of violations allows different browsers, ranging from simple text-based output modules to sophisticated navigators, to present all the information needed for the user to understand the actual reasons for the violations.

  • Web-Based Configuration Interface

    A convenient tool for incrementally specifying and refining the verification tasks.

  • Web-Based Code Cross-Reference and Violations Browser

    The browser will allow user-friendly interactive visualization and navigation of the source following the locations of the violations and their causes, cross-referencing of code entities such as identifiers using semantic as well as syntactic knowledge, and tracing the detailed steps of file inclusion and macro expansion chains.

  • Automatic Unit Test Case Generator

    Will automatically synthesize minimal sets of test cases with the specified coverage criterion.

  • Semantic Matching and Patching

    Will automatically find program points in the source identified by syntactic and semantics-based criteria, optionally replacing the matching program fragment with a parametrized substitution.

  • Simplifiers, Obfuscators, Translators, …

    Just a few examples of the plethora of applications that, because of ECLAIR’s highly modular design, can be developed relatively easily at the right level of abstraction.