Spec#

E440617

Spec# is a formally specified, contract-based extension of the C# programming language designed to support program verification and static checking of code correctness.

All labels observed (3)

Label Occurrences
Spec# canonical 2
Spec# Visual Studio integration 1
Spec# language 1

How this entity was disambiguated

Statements (50)

Predicate Object
instanceOf programming language extension ⓘ
research project ⓘ
verification-oriented programming language ⓘ
basedOn C# ⓘ
developedAt Microsoft Research Redmond ⓘ
linked to: Microsoft Research
developedBy Microsoft Research ⓘ
developer K. Rustan M. Leino ⓘ
Mike Barnett ⓘ
Rustan Leino ⓘ
documentation Spec# Programming System: An Overview ⓘ
firstPublicationYear 2004 ⓘ
goal enable early detection of programming errors ⓘ
improve software reliability ⓘ
support formal reasoning about code ⓘ
hasComponent Spec# Visual Studio integration ⓘ
linked to: Spec#

Spec# compiler ⓘ
Spec# language ⓘ
linked to: Spec#

Spec# static program verifier ⓘ
hasFeature automatic verification condition generation ⓘ
checked exceptions-like constructs ⓘ
design-by-contract ⓘ
frame conditions ⓘ
integration with theorem provers ⓘ
loop invariants ⓘ
modifies clauses ⓘ
non-null types ⓘ
object invariants ⓘ
ownership annotations ⓘ
postconditions ⓘ
preconditions ⓘ
runtime contract checking ⓘ
static contract checking ⓘ
termination checks ⓘ
hasProgrammingLanguage C# ⓘ
influenced Code Contracts for .NET ⓘ
linked to: .NET Code Contracts

Dafny programming language ⓘ
integratesWith Microsoft Visual Studio ⓘ
linked to: Visual Studio
license Microsoft Research Shared Source license ⓘ
paradigm contract-based programming ⓘ
imperative ⓘ
object-oriented ⓘ
supports modular verification ⓘ
object-oriented verification ⓘ
program verification ⓘ
separation of specification and implementation ⓘ
static checking of code correctness ⓘ
targetPlatform .NET ⓘ
linked to: .NET Framework
uses Boogie intermediate verification language ⓘ
Z3 theorem prover ⓘ
linked to: Z3
website https://www.microsoft.com/en-us/research/project/spec/ ⓘ

How these facts were elicited

Referenced by (4)

Full triples — surface form annotated when it differs from this entity's canonical label.

Eiffel → influenced → Spec# ⓘ
Spec# → hasComponent → Spec# language ⓘ
linked to: Spec#
Spec# → hasComponent → Spec# Visual Studio integration ⓘ
linked to: Spec#