AsmL is one of the more amazing new .NET toys I have seen in quite awhile. Created by the Foundations of Software Engineering team at Microsoft Research, AsmL stands for the "Abstract State Machine Language." Why is it so interesting? Because it is an "executable specification language based on the theory of Abstract State Machines.
The downloadable .NET implementation contains everything you need to work with AsmL from the command line, Microsoft Visual Studio.NET, and Microsoft Word. No, that was not a mistake, I really meant Microsoft Word! Why from Word? Probably because AsmL "uses XML and Word for literate specifications." Deriving their approach from Donald Knuth's Literate Programming concepts, Literate Specifications integrate formal specification languages with textual commentary to produce authorative and correct design documents.
Why bother? Because AsmL provides "a precise, non-ambiguous way to specify a computer system, either hardware or software." AsmL helps you create specifications you can actually execute. Think about that!
For you testy folks, dig this quote from the main AsmL Homepage:
AsmL now contains the AsmL Test Tool. Using the AsmL Test Tool, you can generate tests directly from an AsmL model. Both parameter generation and test sequence generation are supported. The tool also allows you to run your AsmL model in parallel with the actual implementation in order to check the implementation's conformance to its specification. The distribution contains examples and mini-tutorials in using the test tool. The tool exposes a simple automation interface so it can easily be embedded into your test harness.
The supplied samples package really does include a Dining Philosophers demo that I compiled and ran successfully from Visual Studio.NET.