<!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</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 in early development stages.  If you are looking for
  source analysis or source-to-source transformation tools, clang is probably
  a great solution for you.  If you want to use it as a drop in C compiler, it
  is not yet ready.</p>

  <p>Clang currently has pretty good parsing and semantic analysis support for
     C and Objective-C right now, and bugs are usually quickly fixed once
     reported.  <a href="cxx_status.html">C++ support</a> is still very early,
     and we don't expect to have respectable C++ support for another 2 years
     or so.</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>
