### Mission

The goal of this project is to raise the abstraction in Ada programs above the level of arrays and simple linked lists.

Charles is a container and algorithms library based in the C++ STL. It is general, flexible, and efficient, and its design has been guided by the philosophy that a library should stay out of the programmer's way.

The library comprises sequence containers and associative containers. Sequence containers include vectors, deques, and lists. The associative containers include sets, multisets, maps, and multimaps.

### Related resources

You can find the latest version of the Charles library by following the "Version control" link under "Project tools", which takes you here:

http://charles.tigris.org/source/browse/charles/src/

There are some older versions of the Charles library at my Earthlink home page. There are also several papers there describing its history and design.

If you're looking for the latest version of the Ada 2005 AI-302 reference implementation, you can find it in the ai302 subdirectory:

http://charles.tigris.org/source/browse/charles/src/ai302/

Here's the Charles container library tutorial that I presented at Ada-Europe 2004: ppt pdf

Here's the Ada 2005 standard container library tutorial that I presented at Ada-Europe 2005: ppt pdf