mardi 12 mai 2009

Cours de C/C++


C++ is a general purpose programming language with a bias towards systems programming thatis a better Csupports data abstractionsupports object-oriented programmingsupports generic programming.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 inmy FAQ,my C++ Style and Technique FAQmy C++ glossary, andsome interviews that I have given.Topics:Learning and teaching C++The ISO C++ standardApplications, compilers, etc.Embedded systemsLibraries, etc.C++ GUI libraries and toolsC++ design and historyGeneral resourcesCollections of articlesRelatedThe ISO C++ Standard: C++ is standardized by ISO (The International Standards Organization) in collaboration with national standards organizations, such as ANSI (The American National Standards Institute), BSI (The British Standards Institute), DIN (The German national standards organization). The original C++ standard was issued in 1998, a minor revison in 2003, and the work on the next standard "C++0x" is nearing completion.An almost complete C++98 standardThe draft C++0x standardMy C++0x FAQ.The ISO C++ standards committee (WG21) maintains an official site with information about the current state of the standards effort.My book The Design and Evolution of C++ describes the standards process and many of the design decisions madeMy book The C++ Programming Language (Special Edition) describes C++ as defined by the ISO standard.The standard committee's technical report on implementation issues and programming techniques related to performance. This should be of particular interest to programmers of embedded systems.The standard committee's technical report on library extensions that are likely to become part of C++0x (possibly after some revisions).My foreword to the printed version of the C++ standard.An 2004 evolution working group wish list; that is, the list of suggested additions to the C++ core language - note that only a fraction of these will be accepted into C++0x. Here is the current state of the evolution proposals.A standard library wishlist maintained by Matt Austern.a press release about C++ and its 1998 standard intended for non-programmersa press release about the availability of the 1998 standardThe standard is ISO/IEC 14882; it is available for downloading from 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. It is available as a book (on paper): "The C++ Standard", published by Wiley, ISBN 0 470 84674-7.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).Applications, compilers, etc.:A list of interesting C++ applications. I welcome suggestions for additions.A list of major industry applications and tools with evolution paths by Vincent Lextrait.An incomplete list of C++ compilers.Hans-J. Boehm's site for C and C++ garbage collection and a couple of sites offering collectors based on his work (University of Tokyo, geodesic.com).Test suites are available for C++. For example: Plumhall and Perennial.Libraries, etc.:A list of available C++ libraries known as the C++ libraries FAQ.Boost.org: A repository for libraries meant to work well with the C++ standard library.STLab: a collection of peer-reviewed and portable C++ source libraries, leveraging and extending both the C++ Standard Library and the Boost Libraries. That page also contains links to Adobe open source libraries, such as the Generic Image Library GIL.Doug Schmidt's site with information about a lot of things including the ACE framework and the TAO real-time ORB.High-performance numerical libraries provide excellent tests for interesting new programming techniques: The Object-Oriented Numerics Page is a list of libraries, projects, and mailing lists. For example: POOMA from LANL, Blitz++ from U. of Waterloo, MTL from Indiana Univarsity, and ROOT from CERN. These libraries, and many more, are available for downloading.SGI's implementation of the STL.Dinkumware's online standard library reference.Rogue Wave's online documentation of an implementation of the standard library.C++ design and history:1991-2006: Evolving a language in and for the real world: C++ 1991-2006.1979-1991: My paper about C++'s design and early years.A more comprenensive book: The Design and Evolution of C++.The Computer History Museum's site for early C++ sources (code, documentation, papers, etc.).An old, but unfortunately not completely irrelevant, net posting answering some unfair criticisms of C++.C++ GUI libraries and toolkits:FLTK.gtkmm.Qt.WxWidgets.and many more.Embedded systems:A confence paper on the basic ideas of using C++ in embedded systems.JSF++: The JSF air vehicle C++ coding standards.The ISO C++ committee's TR on performance.FAQs:My FAQ.My C++ Style and Technique FAQ.My C++0x FAQ.Marshall Cline's C++ FAQ.C++ Standards FAQ containing many valuable links (including some to implementations of the standard library).The learn.c-c++ newsgroup FAQ presents much information of use for C and/or C++ novices.Learning and teaching C++:My beginner's programming text book Programming: Principles and Practice using C++.A list of resources for people learning C++ from The Cambridge University Engineering Department.An extensive collection of book reviews can be found on the ACCU (The Association of C and C++ Users) site.General resources:C++.org; a C++ community site associated with ACCU.A list of C++ resources such as libraries, implementations, books, FAQs, other C++ pages, etc..A large (18,000+) collection of links to information on OO, OOP languages, etc. called Cetus.A catalog of C++ links from Forschungszentrum Julich.David Tribble's paper listing incompatibilities between C++ and C99.Greg Comeau's C++ related site in New York.Brad Appleton's collection of C++ and OOP links.The C++ section of the open directory project.A C++ idioms list.Collections of articles:Herb Sutter's collection of articles focussing on how to learn and use Standard C++ in a modern style.Kevlin Henneys' collection of thought provoking and useful articles about good C++ design and style.Artima's C++ source has a collection of C++ articles, columns, etc.Danny Kalev's C++ articles and news items on informIT.com.Videos:A C++0x talk given at University of Waterloo. Google, NYC. August 2007.A talk on C++0x initializer lists given at Google, Mountainview. February 2007.Several videos, audio recordings, and transcripts of talks, panels, and interviews from Dr. Dobb's Technetcast archieves.Related:Dennis Ritchie's homepage containing lots of interesting information about the history of C, Unix, and (AT&T) Bell Lab's computer science research center (where C++ was born).The Computer History Museum's Software Preservation Group's collection of C++ sources currently focusing on the early years. Contributions are most welcome (see the site for details).

Aucun commentaire:

Enregistrer un commentaire

free counters