<htmlxmlns="http://www.w3.org/1999/xhtml"><head><title>infer (infer.infer)</title><linkrel="stylesheet"href="../odoc.css"/><metacharset="utf-8"/><metaname="generator"content="odoc 1.5.2"/><metaname="viewport"content="width=device-width,initial-scale=1.0"/><scriptsrc="../highlight.pack.js"></script><script>hljs.initHighlightingOnLoad();</script></head><body><divclass="content"><header><nav><ahref="index.html">Up</a>–<ahref="index.html">infer</a>» infer</nav><h1id="infer"><ahref="#infer"class="anchor"></a>Infer</h1><navclass="toc"><ul><li><ahref="#backend">Backend</a></li><li><ahref="#frontends">Frontends</a></li><li><ahref="#utilities">Utilities</a></li><li><ahref="#integrations-and-infer-executables">Integrations and Infer executables</a></li><li><ahref="#index">Index</a></li></ul></nav></header><h2id="backend"><ahref="#backend"class="anchor"></a>Backend</h2><p>Want to write your own analysis? You probably want the <ahref="Absint.html">Absint</a> library. <ahref="Backend.html">Backend</a> is in charge of orchestrating the various analyses on a collection of procedures.</p><p>Some of the simplest analyses can be found in the <ahref="Checkers.html">Checkers</a> library.</p><h2id="frontends"><ahref="#frontends"class="anchor"></a>Frontends</h2><p>The frontends translate the source code to analyze into Infer's intermediate representation (see <ahref="IR.html">IR</a>) to be analyzed by the backend.</p><p>There are two frontends:</p><ul><li><ahref="ClangFrontend.html">Clang</a></li><li><ahref="JavaFrontend.html">Java</a></li></ul><p>See also <ahref="ASTLanguage.html">AST Language</a>, and <ahref="TestDeterminators.html">TestDeterminators</a>, which operate right after the frontends.</p><h2id="utilities"><ahref="#utilities"class="anchor"></a>Utilities</h2><p><ahref="IStdlib.html">IStdlib</a> groups non-Infer-specific modules, and <ahref="IBase.html">IBase</a> contains more Infer-specific modules that other Infer libraries need, usually depending on the <ahref="IBase/Config/index.html"><code>IBase.Config</code></a> module. Some datatypes and their accompanying utilities are defined in the <ahref="ATDGenerated.html">ATDGenerated</a> library.</p><h2id="integrations-and-infer-executables"><ahref="#integrations-and-infer-executables"class="anchor"></a>Integrations and Infer executables</h2><p><ahref="Integration.html">Integration</a> ties the frontends and backend together, and deals with build system integrations.</p><p>You'll find the source code for the <code>infer</code> command-line interface and others in the <ahref="https://github.com/facebook/infer/blob/master/infer/src/">infer/src/</a> directory.</p><h2id="index"><ahref="#index"class="anchor"></a>Index</h2><p><ahref="index.html">List of all libraries.</a></p></div></body></html>