
on Fri Aug 31 2007, Doug Gregor <dgregor-AT-osl.iu.edu> wrote:
Hello fellow Boosters,
The need for an extensible, complete open-source C++ parser has been discussed on Boost over the years. There are myriad projects that parse approximations to C++ suitable for specific tasks (e.g., documentation generation), but there has never been a community project meant to handle all of C++ or serve as a common platform for new C++ tools. That is going to change, and I hope Boost will be involved.
Apple has begun development of "Clang", which aims to be a high- quality C/C++ parser and compiler. Clang is designed as a library for C++ tools, from IDE-supported tools like indexing, searching, and refactoring to documentation tools, static checkers, and a full C++ front end to the Low Level Virtual Machine (LLVM). LLVM is an advanced, open-source compiler infrastructure supporting all of the back-end functionality needed for a C++ compiler. Like LLVM, Clang is written in a modern C++ style, with a clean separation between the different phases of translation in C++ (lexical analysis, parsing, semantic analysis, lowering, code generation, etc.), all of which make Clang a pleasure to work with.
Clang is still in the early stages of development. At present, it parses and type-checks most of C, with code generation for some simple constructs. C++ support is not available yet, but Apple has dedicated significant resources to making Clang a successful C++ parser and compiler.
Well, it's about time something like this existed... I always wanted a C++ compiler written in C++, with high-level abstractions, so that I could "easily" develop new features.
That said, Clang needs our help. Collectively, Boost developers have more knowledge about and a deeper understanding of C++ than any other community within C++. We have the C++ expertise to help implement the language well, and the library-design savvy to help build powerful, accessible interfaces that simplify the task of building new and improved tools for C++. The Clang team is asking for help implementing C and C++ features and are very open to new contributors.
Is there a list of tasks somewhere? If someone wants to help, where can they find something to do? I note the LLVM website says "a GCC-based C & C++ front-end." I assume that is *not* what we're talking about here? -- Dave Abrahams Boost Consulting http://www.boost-consulting.com The Astoria Seminar ==> http://www.astoriaseminar.com