An Abstract State Machine Primer

Document Type

Technical Paper

Publication Date


Publication Title

Michigan Technological University Computer Science Technical Report CS-TR-02-04


Over the last twenty years, Abstract State Machines (ASMs) have been used to describe and validate a wide variety of computing systems [9]. Numerous introductions to ASMs have been written (see for example [20, 10, 21, 36]). In addition, many ASM papers include brief overviews for the casual reader. In this paper we attempt to provide a gentler introduction, focusing more on the use of the technique than on formal definitions. Our target audience is a senior-level undergraduate class in software engineering, but we hope that this work proves helpful to other readers as well.

While there are references to "software" throughout, the reader should be aware that ASMs are relevant to other kinds of system development as well. For simplicity, our focus is on ASMs with only a single agent; distributed ASMs may be considered in a later paper.


Financial Support for this work has been provided by Microsoft.


© James Huggins & Charles Wallace