Support for Programming by Contract
Explain the Support for Programming by Contract or pbc?
Expert
Programming by Contract can be supported on several levels, depending on the programming language and available third-party tools.
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:
Normal 0 false false
What do you mean by Symmetric Encryption?
Describe briefly the term parasitism?
Describe the changes that were going on in agriculture in the USA between 1870 and 1900. What was the main difference between a farmer around 1900 and a generation earlier?
Differentiate Complier and Interpreter?
Understanding Property Violations: When a property violation is detected by the model checker, the model checker typically generates a counterexample trace. The trace points to the location where the violation was detected, but quite often what is rep
What type of muscle tissue performs peristalsis
Test-Related Code Annotation and Runtime System: As useful as test systems like JUnit are, test cases do require a significant amount of work to create and maintain, especially since they are implemented outside of the SUT sources, and need to be kept
18,76,764
1931923 Asked
3,689
Active Tutors
1420588
Questions Answered
Start Excelling in your courses, Ask an Expert and get answers for your homework and assignments!!