
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.