-1

What is Spec# I've been hearing about?

6 Answers6

4

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#

victor hugo
  • 35,514
  • 12
  • 68
  • 79
Jonathan
  • 11,809
  • 5
  • 57
  • 91
4

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.

Spec# on wikipedia

Simon P Stevens
  • 27,303
  • 5
  • 81
  • 107
1

Check out Microsoft's site on the language http://research.microsoft.com/en-us/projects/specsharp/

Miyagi Coder
  • 5,464
  • 4
  • 33
  • 42
1

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.

Matthew Vines
  • 27,253
  • 7
  • 76
  • 97
1

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:

http://weblogs.asp.net/podwysocki/archive/2008/11/08/code-contracts-for-net-4-0-spec-comes-alive.aspx

Robert Harvey
  • 178,213
  • 47
  • 333
  • 501
0

It's been abandoned.

Is Spec# stable enough to use?

Community
  • 1
  • 1
Spencer Ruport
  • 34,865
  • 12
  • 85
  • 147