What is Spec# I've been hearing about?
6 Answers
Spec# is a formal language for API contracts (influenced by JML, AsmL, and Eiffel), which extends C# with constructs for non-null types, preconditions, postconditions, and object invariants. Spec# comes with a sound programming methodology that permits specification and reasoning about object invariants even in the presence of callbacks and multi-threading. Spec# is a research vehicle that has been used to explore specifications and the dynamic/static tools that make use of them.
More in Spec#

- 35,514
- 12
- 68
- 79

- 11,809
- 5
- 57
- 91
-
2It should be. It's a cut and paste from the posted link. – Robert Harvey Aug 06 '09 at 20:37
-
3I figured as much... but that doesn't stop it from be a great description – Matthew Whited Aug 06 '09 at 21:02
Spec# is programming language that is essential an extension to C#. It adds the ability to define contracts on methods. Contacts are conditions that must be true for the method to be valid. An example of a contact would be stating that a specific parameter must not be null when the method is run.
It includes a tool that can be run that attempts to prove if the conditions are guaranteed to be met.
It was a research project by Microsoft that has now been abandoned, but the work that was done forms the basis of the code contracts in .net 4.0.

- 27,303
- 5
- 81
- 107
Check out Microsoft's site on the language http://research.microsoft.com/en-us/projects/specsharp/

- 5,464
- 4
- 33
- 42
Here is the Microsoft Research page outlining the project.
From the site:
The Spec# programming system is a new attempt at a more cost effective way to develop and maintain high-quality software.

- 27,253
- 7
- 76
- 97
Spec# is a research language involving Design by Contract.
Note that Microsoft has chosen to integrate Code Contracts into the upcoming .NET Framework 4.0 Release. More info:

- 178,213
- 47
- 333
- 501
It's been abandoned.

- 1
- 1

- 34,865
- 12
- 85
- 147
-
While this maybe true... it doesn't really answer the question. – Matthew Whited Aug 06 '09 at 20:37