The CoreASM Project

CoreASM is an open source project (licensed under Academic Free License version 3.0) that focuses on the design of a lean executable Abstract State Machines language (ASM) [Börger and Stärk 2003], in combination with a supporting tool environment for high-level design, experimental validation, and formal verification (where appropriate) of abstract system models.( wikipedia )

ASM is a well-known and generally accepted executable formalism for specification of hard- and software systems. For example, it has been used to describe, verify and validate complex formal languages, especially their semantics, e.g. Java and its virtual machine [Stärk, Schmid et al. 2001] or comprehensive parts of the Unified Modeling Language [Kohlmeyer 2009].

Although debugging is an integral part of the implementation of software, it is just roughly supported by current ASM tools. In order to simplify the validation of (complex) ASM specifications we extend CoreASM [Farahbod 2009] by a debugger. Meanwhile, we merged our project into the CoreASM main project. The joint project is available at github.


[Börger and Stärk 2003] E. Börger and R. Stärk. Abstract State Machines - A Method for High-Level System Design and Analysis. Springer, 2003.

[Farahbod 2009] R. Farahbod. CoreASM: An Extensible Modeling Framework & Tool Environment for High-level Design and Analysis of Distributed Systems. PhD thesis, Simon Fraser University, Burnaby, Canada, 2009.

[Farahbod, Gervasi et al. 2004] R. Farahbod, V. Gervasi, U. Glässer, and G. Ma. CoreASM Plug-In Architecture. In Rigorous Methods for Software Construction and Analysis, pages 147-169, 2009.

[Kohlmeyer 2009] J. Kohlmeyer and W. Guttmann. Unifying the Semantics of UML 2 State, Activity and Interaction Diagrams. Perspectives of Systems Informatics, 5947:206-217, 2010

[Stärk, Schmid et al. 2001] R. Stärk, J. Schmid, and E. Börger. Java and the Java Virtual Machine - Definition, Verification, Validation. Springer, 2001.