<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
          "http://www.w3.org/TR/html4/strict.dtd">
<!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
<html>
<head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>"clang" C Language Family Frontend for LLVM</title>
  <link type="text/css" rel="stylesheet" href="menu.css">
  <link type="text/css" rel="stylesheet" href="content.css">
</head>
<body>
<!--#include virtual="menu.html.incl"-->
<div id="content">
  <!--*********************************************************************-->
  <h1>clang: a C language family frontend for LLVM</h1>
  <!--*********************************************************************-->
  
  <p>The goal of the Clang project is to create a new C, C++, Objective C and
  Objective C++ front-end for the <a href="http://www.llvm.org/">LLVM</a>
  compiler.  You can <a href="get_started.html">get and build</a> the source
  today.</p>
  
  <!--=====================================================================-->
  <h2 id="goals">Features and Goals</h2>
  <!--=====================================================================-->
  
  <p>Some of the goals for the project include the following:</p>
  
  <p><b><a href="features.html#enduser">End-User Features</a></b>:</p>

  <ul>
  <li>Fast compiles and low memory use</li>
  <li>Expressive diagnostics (<a href="diagnostics.html">examples</a>)</li>
  <li>GCC compatibility</li>
  </ul>

  <p><b><a href="features.html#applications">Utility and 
     Applications</a></b>:</p>

  <ul>
  <li>Modular library based architecture</li>
  <li>Support diverse clients (refactoring, static analysis, code generation,
   etc)</li>
  <li>Allow tight integration with IDEs</li>
  <li>Use the LLVM 'BSD' License</li>
  </ul>

  <p><b><a href="features.html#design">Internal Design and 
     Implementation</a></b>:</p>

  <ul>
  <li>A real-world, production quality compiler</li>
  <li>A simple and hackable code base</li>
  <li>A single unified parser for C, Objective C, C++, and Objective C++</li>
  <li>Conformance with C/C++/ObjC and their variants</li>
  </ul>

  <p>Of course this is only a rough outline of the goals and features of
     Clang.  To get a true sense of what it is all about, see the <a 
     href="features.html">Features</a> section, which breaks
     each of these down and explains them in more detail.</p>

     
  <!--=====================================================================-->
  <h2>Why?</h2>
  <!--=====================================================================-->
  
  <p>The development of a new front-end was started out of a need -- a need
     for a compiler that allows better diagnostics, better integration with
     IDEs, a license that is compatible with commercial products, and a
     nimble compiler that is easy to develop and maintain.  All of these were
     motivations for starting work on a new front-end that could
     meet these needs.</p>
     
  <p>A good (but quite dated) introduction to Clang can be found in the
     following video lectures:</p>
     
  <ul>
    <li><a href="clang_video-05-25-2007.html">Clang Introduction</a>
        (May 2007)</li>
    <li><a href="clang_video-07-25-2007.html">Features and Performance of 
        Clang</a>  (July 2007)</li>
  </ul>
  
  <p>For a more detailed comparison between Clang and other compilers, please
     see the <a href="comparison.html">clang comparison page</a>.</p>
  
  <!--=====================================================================-->
  <h2>Current Status</h2>
  <!--=====================================================================-->
  
  <p>Clang is still under heavy development.  Clang is considered to be 
   a production quality C and Objective-C compiler when targetting X86-32 and X86-64
   (other targets may have caveats, but are usually easy to fix).  If you are 
   looking for source 
   analysis or source-to-source transformation tools, clang is probably
   a great solution for you.  If you are interested in C++,
   <a href="cxx_status.html">full support</a> is still way off.</p>

  <!--=====================================================================-->
  <h2>Get it and get involved!</h2>
  <!--=====================================================================-->
  
  <p>Start by <a href="get_started.html">getting the code, building it, and
     playing with it</a>.  This will show you the sorts of things we can do
     today and will let you have the "clang experience" first hand: hopefully
     it will "resonate" with you. :)</p>
  
  <p>Once you've done that, please consider <a href="get_involved.html">getting
     involved in the clang community</a>.  The clang developers include numerous
     volunteer contributors with a variety of backgrounds.  If you're 
     interested in
     following the development of clang, signing up for a mailing list is a good
     way to learn about how the project works.</p>
</div>
</body>
</html>
