<!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.  Clang's C++ support is currently alpha quality
   at best, but is evolving rapidly: see the <a
    href="cxx_status.html">C++ status</a> page for more
   information.</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>
