{{Short description|Software testing tool}} {{about|the software|other uses|Éclair (disambiguation)}} {{refimprove|date=December 2012}} {{Infobox Software | name = ECLAIR | screenshot = | caption = | developer = BUGSENG | latest_release_version = 3.14.0 (2025) | latest_release_date = {{Start date and age|2025|05|12}}<ref>{{cite web | url = https://bugseng.com/category/news-events/ | title = News BUGSENG | website = bugseng.com | access-date = 2021-04-04 }}</ref> | operating_system = Cross-platform | genre = Static code analysis | license = Proprietary | website = {{URL|https://bugseng.com/eclair-static-analysis-tool/}} }}
'''ECLAIR''' is a commercial static code analysis tool developed by [https://bugseng.com/ BUGSENG] for automatic analysis, verification, testing and transformation of C and C++ programs.
== Capabilities ==
ECLAIR is a complete re-engineering of a series of prototypes<ref>{{cite arXiv |author1=R. Bagnara |author2=P. M. Hill |author3=E. Zaffanella |eprint=0711.0345 |title=A Prolog-based Environment for Reasoning about Programming Languages |year=2007 |class=cs.PL }}</ref> developed at the Applied Formal Methods Laboratory of the University of Parma. It uses formal methods-based static code analysis techniques such as abstract interpretation and model checking combined with constraint satisfaction techniques to detect or prove the absence of certain run time errors in source code, and provides support for program analysis and verification, program test generation and program transformation.
Concerning program analysis and verification, ECLAIR can statically detect or proof the absence of run-time anomalies as well as automatically check for conformance with respect to several coding standards, such as MISRA C, MISRA C++, CERT C Secure Coding Standard, CERT C++ Secure Coding Standard,<ref>{{cite book |title=Secure Coding in C and C++ |last1=Seacord |first1=Robert C. |year= 2013 |edition=2nd |series=SEI Series in Software Engineering |publisher=Addison-Wesley Professional |isbn=978-0-321-82213-0 |url=http://www.informit.com/store/secure-coding-in-c-and-c-plus-plus-9780321822130 }}</ref> High-Integrity C++, NASA/JPL C, ESA/BSSC C/C++, JSF C++, EC--,<ref>{{Cite journal | last1 = Hatton | first1 = L. | title = EC—a measurement based safer subset of ISO C suitable for embedded system development | doi = 10.1016/j.infsof.2004.08.001 | journal = Information and Software Technology | volume = 47 | issue = 3 | pages = 181–695 | year = 2005 | citeseerx = 10.1.1.101.7828 }}</ref> Netrino Embedded C,<ref>{{cite book |title=Embedded C Coding Standard |last1=Barr |first1=Michael |year=2008 |publisher=Barr Group |isbn=978-1442164826 }}</ref> The Power of Ten (C),<ref>{{Cite journal | last1 = Gerald | first1 = J. | title = The Power of 10: Rules for Developing Safety-Critical Code | doi = 10.1109/MC.2006.212 | journal = Computer | volume = 39 | issue = 6 | pages = 95–97 | year = 2006 | bibcode = 2006Compr..39f..95H | s2cid = 7334261 }}</ref> Industrial Strength C++.<ref>{{cite book |title=Industrial Strength C++ |last1=Henricson |first1=Mats |last2=Nyquist |first2=Erik |year=1997 |publisher=Prentice-Hall PTR |isbn=978-0131209657 |url=https://archive.org/details/industrialstreng0000henr |url-access=registration }}</ref>
For program testing, ECLAIR can automatically synthesize sets of unit test inputs that reach a user-specified coverage criterion, warning the user when, due to infeasible conditions in the program, this coverage cannot be attained.
Regarding program transformation, ECLAIR can be used to perform complex program transformations: these are specified by syntactic and semantics-based criteria; the program regions in the source that match these criteria can be optionally replaced by a parametrized substitution.
== See also ==
* Abstract interpretation * Model checking * Static code analysis * List of tools for static code analysis
== References ==
{{reflist}}
== External links == * [https://bugseng.com/eclair-static-analysis-tool/ Official ECLAIR website]
Category:Static program analysis tools Category:Software testing tools