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#