We are currently designing Cobalt, a domain specific language for expressing compiler optimizations. By providing natural abstractions for declaratively specifying compiler optimizations, Cobalt will make it easier for humans to write and reason about optimizations. But more importantly, Cobalt will make it possible for a computer to effectively understand, process and reason about optimizations. Here are some examples of goals we hope to acheive once optimizations are expressed in Cobalt:
· reason statically about various properties of optimizations;
· automatically combine separately written optimizations, while still enabling them to interact in mutually beneficial ways;
· efficiently stage optimizations;
· write various kinds of useful optimization transformers.
All of these goals will provide support not only for compiler writers but also for programmers who want to extend the compiler.
Craig Chambers developed this programming language.
The University of Washington Cecil group focuses primarily on constructing practical programming systems (languages, implementations, and environments) that will make large applications and systems programs easier to write and extend. The effectiveness of a programming system is determined in large part by the extent to which:
Our work integrates language design, language implementation, and programming environment research. We believe that the synergy of the combined research program leads to more rapid progress and better final results in each individual area. Moreover, we aim to develop usable artifacts incorporating the research results, both to better evaluate the effectiveness of the research results and to use as a foundation for future research.
From the UW Cecil Group website
http://www.cs.washington.edu/research/projects/cecil/cecil/www/cecil-home.html
The C++ Programming Language
C++ is a general purpose programming language with a bias towards systems programming that
I (Bjarne Stroustrup) am the designer and original implementor of C++. You can find the language, the techniques for using it, and the techniques for implementing it described in my books, my papers, in hundreds of books by others, and thousands of papers by others. There are far too many to list. Try a bookstore or a library. Answers to many questions about C++ can be found in
C++ has been standardized by ANSI (The American National Standards Institute), BSI (The British Standards Institute), DIN (The German national standards organization), several other national standards bodies, and ISO (The International Standards Organization). You can find a slightly out-of-date draft standard here. The ISO standard has been finalized and adopted by unanimous vote Nov 14, 1997. It was ratified in August 1998 by a 22-0 vote. The standard is ISO/IEC 14882; it is available for downloading at the National Committee for Information Technology Standards Electronic Store. The cost is (as I write this) US$18.00 payable on-line via credit card. The downloaded document is in PDF form, 2794KB total size. The ISO C++ standards committee maintains an official site with information about the current state of the standards effort. The list of corridenda (corrections/updates/clarifications) voted into the standard in 2002 is here. ISO is in the process of publishing the revised standard (with this corridenda integrated), which will be known as ISO/IEC 14882:2002. It will be available soon as a book: "The C++ Standard", published by Wiley, ISBN 0 470 84674-7. Here are some more standard-related links
Discussions about C++ and its use can be found in most forums covering programming. The usenet groups comp.lang.c++.moderated and alt.comp.lang.learn.c-c++ are good examples. These groups can be accessed in various ways including Google Groups (sort by date).
From The C++ Programming Language Website http://www.research.att.com/~bs/C++.html