View on GitHub

Unified ASM Syntax Project

Introduction

Abstract State Machines (ASMs) are a common formal specification language. They can be described as "pseudo-code over abstract data". The main difference to e.g. finite state machines is that each state not only defines the control flow, but also the available data structures in so called "algebras". This explains the original name "evolving algebras".

In the book "Abstract State Machines - A Method for High-Level System Design and Analysis" by Egon Börger and Robert Stärk (2003), this method is explained in detail. Because of their closeness to mathematics, the ASM specifications make extended use of mathematical symbols. On one side, this is convenient, but on the other side, this makes it hard to write tools for ASMs.

While there exist several tools (ASMeta, CoreASM, KIV, AsmL [Links]), they all define their own interpretation of the (abstract) syntax defined or just used in several papers or books. This circumstance makes it very tedious to reuse an ASM model written in one tool in another.

Thus, the goal of the UASM-project is to define one common concrete syntax for ASMs that can (and should be) used in all tools. For the beginning, we started to combine the syntaxes of ASMeta and CoreASM.

The progress of this joined work between UNIBG, UMIL and UULM is documented on this homepage and the corresponding github repositories.

monthly meeting

protocols

open issues

documents

current state

decisions

next steps

fix grammar

review documentation

create parser for UASM (JParsec)

define translation of AST to ASMeta-Model

publications

links

ASMeta

CoreASM

KIV

AsmL

contact

UNIBG UULM UMIL