Dafny
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 homepage, which contains some information about Dafny http://research.microsoft.com/dafny.
- This site, which includes binary downloads, sources, and the Discussions and Issue Tracker forums for asking questions, http://dafny.codeplex.com.
- The Rise4fun site, where you can verify Dafny programs in your web browser, http://rise4fun.com/dafny.
Read more:
- How to install Dafny
- How to install the new Dafny mode for Emacs
- For more papers on Dafny, see the Dafny section of Rustan Leino's paper page
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, C#, and Scala (like the classes and traits, and syntax for functions),
- ML (like the module system, and its functions and inductive datatypes), and
- Coq and VeriFast (like the ability to include co-inductive datatypes and being able to write inductive and co-inductive proofs).
External contributions:
- Haskell-to-Dafny translator, by Duncan White
- Vim-loves-Dafny mode for vim, by Michael Lowell Roberts