1 <!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.01//EN"
2 "http://www.w3.org/TR/html4/strict.dtd">
3 <!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ -->
6 <META http-equiv=
"Content-Type" content=
"text/html; charset=ISO-8859-1">
7 <title>"clang" C Language Family Frontend for LLVM
</title>
8 <link type=
"text/css" rel=
"stylesheet" href=
"menu.css">
9 <link type=
"text/css" rel=
"stylesheet" href=
"content.css">
12 <!--#include virtual="menu.html.incl"-->
14 <!--*********************************************************************-->
15 <h1>clang: a C language family frontend for LLVM
</h1>
16 <!--*********************************************************************-->
18 <p>The goal of the Clang project is to create a new C, C++, Objective C and
19 Objective C++ front-end for the
<a href=
"http://www.llvm.org/">LLVM
</a>
20 compiler. You can
<a href=
"get_started.html">get and build
</a> the source
23 <!--=====================================================================-->
24 <h2 id=
"goals">Features and Goals
</h2>
25 <!--=====================================================================-->
27 <p>Some of the goals for the project include the following:
</p>
29 <p><b><a href=
"features.html#enduser">End-User Features
</a></b>:
</p>
32 <li>Fast compiles and low memory use
</li>
33 <li>Expressive diagnostics (
<a href=
"diagnostics.html">examples
</a>)
</li>
34 <li>GCC compatibility
</li>
37 <p><b><a href=
"features.html#applications">Utility and
38 Applications
</a></b>:
</p>
41 <li>Modular library based architecture
</li>
42 <li>Support diverse clients (refactoring, static analysis, code generation,
44 <li>Allow tight integration with IDEs
</li>
45 <li>Use the LLVM 'BSD' License
</li>
48 <p><b><a href=
"features.html#design">Internal Design and
49 Implementation
</a></b>:
</p>
52 <li>A real-world, production quality compiler
</li>
53 <li>A simple and hackable code base
</li>
54 <li>A single unified parser for C, Objective C, C++, and Objective C++
</li>
55 <li>Conformance with C/C++/ObjC and their variants
</li>
58 <p>Of course this is only a rough outline of the goals and features of
59 Clang. To get a true sense of what it is all about, see the
<a
60 href=
"features.html">Features
</a> section, which breaks
61 each of these down and explains them in more detail.
</p>
64 <!--=====================================================================-->
66 <!--=====================================================================-->
68 <p>Development of the new front-end was started out of a need
69 for a compiler that allows better diagnostics, better integration with
70 IDEs, a license that is compatible with commercial products, and a
71 nimble compiler that is easy to develop and maintain. All of these were
72 motivations for starting work on a new front-end that could
75 <p>A good (but quite dated) introduction to Clang can be found in the
76 following video lectures:
</p>
79 <li><a href=
"clang_video-05-25-2007.html">Clang Introduction
</a>
81 <li><a href=
"clang_video-07-25-2007.html">Features and Performance of
82 Clang
</a> (July
2007)
</li>
85 <p>For a more detailed comparison between Clang and other compilers, please
86 see the
<a href=
"comparison.html">clang comparison page
</a>.
</p>
88 <!--=====================================================================-->
89 <h2>Current Status
</h2>
90 <!--=====================================================================-->
92 <p>Clang is considered to
93 be a production quality C, Objective-C, C++ and Objective-C++ compiler when
94 targeting X86-
32, X86-
64, and ARM (other targets may have caveats, but are
95 usually easy to fix). If you are looking for source analysis or
96 source-to-source transformation tools, clang is probably a great
97 solution for you. Clang supports C++
11, please see the
<a
98 href=
"cxx_status.html">C++ status
</a> page for more
101 <!--=====================================================================-->
102 <h2>Get it and get involved!
</h2>
103 <!--=====================================================================-->
105 <p>Start by
<a href=
"get_started.html">getting the code, building it, and
106 playing with it
</a>. This will show you the sorts of things we can do
107 today and will let you have the
"clang experience" first hand: hopefully
108 it will
"resonate" with you. :)
</p>
110 <p>Once you've done that, please consider
<a href=
"get_involved.html">getting
111 involved in the clang community
</a>. The clang developers include numerous
112 volunteer contributors with a variety of backgrounds. If you're
114 following the development of clang, signing up for a mailing list is a good
115 way to learn about how the project works.
</p>