Welcome to AsmGofer
What is AsmGofer?
AsmGofer is an advanced Abstract State Machine (ASM) programming system, which runs under several platforms (Unix-based or MS-based operating systems). The aim of the AsmGofer system is to provide a modern ASM interpreter embedded in the well known functional programming language Gofer. Gofer is a subset of Haskell – the de-facto standard for strongly typed lazy functional programming languages.
AsmGofer is an extension of TkGofer in order to support graphical user interfaces. The design and implementation was done by Joachim Schmid at Siemens Research in Munich. Wolfram Schulte (University of Ulm) was also involved in the design of AsmGofer. He had the idea about integrating the ASM semantics into the Gofer system and gave useful hints and comments.
Documentation
Available documentation
- Introduction to AsmGofer (The AsmGofer sources for Game of Life: gameOfLife.tar.gz")
- Overview of AsmGofer
- Prelude description
- Stanislas Nanchen has written a Little Manual for AsmGofer
Available examples
-
Robert Stärk, Joachim Schmid, Egon Börger have written a book about Java and the Java Virtual Machine. The book has been published in June 2001. Our ASM specifications for Java and the Java Virtual Machine are executable with AsmGofer. There is an interpreter for Java, a compiler from Java to bytecode, and an interpreter for bytecode. More information about the book can be found on the Jbook Homepage.
Here are the screenshots for our Java and our Java Virtual Machine implementation.
-
The Light control system was a case study in the Dagstuhl seminar Requirements Capture, Documentation and Validation. For this seminar Egon Börger, Elvinia Riccobene and myself developped an ASM specification. The specification (light.pdf) is published in JUCS (voulme 6, Issue 7).
The specification presented in the paper is executable with AsmGofer where a graphical user interface models the physical environment. Information about the executable specification light.tar.gz can be found on this page.
-
Dining Philosophers. Usage of seq, multi agents – only supported by version 1.1.
Windows 95/NT
Information about compiling and using AsmGofer under Windows 95/NT is given on this site. This information is only relevant if you don’t use the unix environment cygwin for Windows 95/NT and if you don’t use the provided setup program AsmGofer-v1.1.exe for Microsoft Windows.
Downloading
The AsmGofer distribution is available for download. The package is only for personal or educational use. For further details see the Gofer license in the package.
- asmgofer.tar.gz (Source distribution)
- asmgofer-1.0.1.tar.gz (Source distribution, bug fix for mkSet in the prelude)
- asmgofer-1.0.2.tar.gz (Source distribution, some new definitions)
- asmgofer-1.1.tar.gz (Source distribution - needs g++ to compile, seq, iterate, agents)
- AsmGofer-v1.1.exe (Binary distribution for Microsoft Windows)