Support for Programming by Contract

Explain the Support for Programming by Contract or pbc?

E

Expert

Verified

Programming by Contract can be supported on several levels, depending on the programming language and available third-party tools.

145_pbc support1.jpg

While direct support by language provides the most powerful support for contracts (e.g., loop variants/invariants), it depends on languages or language extensions that are not mainstream, and therefore might not be suitable for all projects. The two statically typed (compiled), publicly available programming languages supporting PbC at this level are Eiffel (Eiffel Software) and D (Digital Mars). Both are contemporary object-oriented languages, implemented in proprietary and open source compilers, supporting several hardware architectures and operating systems. Eiffel provides deeper PbC support (e.g., loop variants and invariants), and loosely resembles Pascal/Ada in terms of declaration and expression syntax. D resembles C/C++, but is not yet widely used and is less mature than Eiffel. Both languages have established user and developer communities, but cannot be considered as mainstream as C++.

While a PbC proposal exists for the upcoming C++0x standard (Abrahams et al. 2005), it is not yet clear if and when compiler vendors will support it. The syntax resembles D, in that it requires grammar extensions:

1120_pbc support2.jpg

   Related Questions in Science

©TutorsGlobe All rights reserved 2022-2023.