Dafny is a programming language with a program verifier. As you type in your program, the verifier constantly looks over your shoulders and flags any errors. Dafny is currently spread across 3 sites:
Dafny has just moved to this site. Some documentation is still found at the old site, http://boogie.codeplex.com
, but it will soon move here.
The language itself draws pieces of influence from:
- Euclid (from the mindset of a designing a language whose programs are to be verified),
- Eiffel (like the built-in contract features),
- CLU (like its iterators, and inpiration for the out-parameter syntax),
- Java and C# (like the classes, although Dafny does not support subclassing),
- ML (like the module system, and its functions and inductive datatypes, but Dafny does not support higher-order features), and
- Coq (like the ability to include co-inductive datatypes and being able to write inductive and co-inductive proofs).