AsmL is the Abstract State Machine Language. The language was developed by the Foundations of Software Engineering (FSE) group at Microsoft Research. It is an executable specification language based on the theory of Abstract State Machines.
The AsmL compiler compiler targets .NET code. The compiler was originally developed by the FSE group as well. In addition to the compiler itself, there is an add-in for Microsoft Word that facilitates literate programming.
AsmL is useful in any situation where you need a precise, non-ambiguous way to specify a computer system, either software or hardware. AsmL specifications are an ideal way for teams to communicate design decisions. Program managers, developers, and testers can all use an AsmL specification to achieve a single, unified understanding.
One of the greatest benefits of an AsmL specification is that you can execute it. That means it is useful before you commit yourself to coding the entire system. By exploring your design, you can answer the following questions: Does it do everything you intended it to? How do the features interact? Are there any unintended behaviors?
You can get AsmL from CodePlex at AsmL. Documentation and example code available.
Bruce D. Kyle
ISV Architect Evangelist | Microsoft Corporation