STL is specified as part of the C++ Standard. But in the Standard,
the semantic definition of the C++ language and the standard library
components is given only informally as a set of requirements stated in
English. It is incomplete and depends heavily on the reader's (and
the language and library implementor's) prior knowledge and "good
intentions." While this works well most of the time, there can be
misunderstandings and misinterpretations that lead to incorrect or
unexpected program behavior. One possible remedy is using a formally
defined specification language to express the semantics rigorously.
Tecton Description of STL Container and Iterator Concepts (PDF file; hard copies available in class),which is a working draft of a paper that uses the Tecton concept description language to give the first rigorous specification of key STL concepts and component semantics. The following slides outline how Tecton itself is defined and give an overview of the STL-related specification examples in the above paper. The Tecton Concept Description Language (Postscript file). |