Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sri-csl/imaude
Interactive Maude
https://github.com/sri-csl/imaude
actors iop jlambda maude
Last synced: about 2 months ago
JSON representation
Interactive Maude
- Host: GitHub
- URL: https://github.com/sri-csl/imaude
- Owner: SRI-CSL
- Created: 2015-08-08T23:15:47.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2019-06-07T13:54:08.000Z (over 5 years ago)
- Last Synced: 2023-12-18T03:36:20.491Z (about 1 year ago)
- Topics: actors, iop, jlambda, maude
- Language: NewLisp
- Homepage:
- Size: 76.2 KB
- Stars: 8
- Watchers: 19
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# IMaude
IMaude is a set of Maude Modules to be used in conjuction
with the [Maude system](http://maude.cs.uiuc.edu) and the
[IOP Platform](https://github.com/SRI-CSL/iopc)
to program interactive Maude applications. It is used in systems such as the
[Pathway Logic Assistant](http://pl.csl.sri.com/) and the [Maude-NPA System](http://maude.cs.illinois.edu/w/index.php?title=Maude_Tools:_Maude-NPA) and its [GUI.](http://www.csl.sri.com/users/iam/NPA/index.html)
You can download the code either by cloning this repository or by downloading the latest [release.](https://github.com/SRI-CSL/imaude/releases)## Overview
This repository serves two purposes. It contains the shared
libraries for imaude (interactive maude) applications such as those mentioned above. It also contains
the simple vending machine example, that illustrates how to use the IMaude system.### Vending Machine
There are two ways to use the IMaude interaction environment: using only Maude
or using the IOP framework. These are illustrated with the help of the vending
machine example in subdirectory VendingMachine#### Maude Commandline
To interact using only Maude, cd to [VendingMachine](VendingMachine), and type
```
maude load-vend
```
[load-vend.maude](VendingMachine/load-vend.maude) loads the necessary IMaude code, maude's model checker, the vending machine specification
in [vend.maude](VendingMachine/vend.maude) and then starts up loop mode with the command
```
loop init .
```
Initialize the environment with some let commands to name states you are
interested in exploring, then you can rewrite and apply functions to the
results using the commands described in [test-vend.txt](VendingMachine/test-vend.txt).
Examples can be found in [input.txt](VendingMachine/input.txt)
and a scenario with output summary can be found in [test-vend.txt](VendingMachine/test-vend.txt).You can examine the current environment using the various `show` requests
of the `IMAUDE-STATE` module (also described in [doc-imaude.txt](ilib/Doc/doc-imaude.txt)).
input.txt has examples.#### Maude Actor Systems
To interact via IOP you must have [IOP Platform](https://github.com/SRI-CSL/iopc) installed with the `IOPBINDIR` binary directory
in your path.By default `iop` looks for a file named `startup.txt` to configure itself ---
what actors to start with what parameters.
Two sample startups are provided. [startup-vend.txt](VendingMachine/startup-vend.txt) allows you
interact with the vending machine via the IOP GUI. [startup-assist.txt](VendingMachine/startup-assist.txt)
presents a specialized vending machine window with buttons and
menus for interaction. You can overide the default choice of `startup.txt`
by using the `-i` switch.
In a shell in the VendingMachine directory type
```
iop -i startup-vend.txt
```
to interact with the vending machine via the IOP GUI. Type
```
iop -i startup-assist.txt
```
to get the vending machine window, a GUI application written in jlambda in the file
[vend.lsp](VendingMachine/vend.lsp). The IOP GUI window will also be available, sometimes
useful for debugging the system of actors.IOP will display the file [input.txt](VendingMachine/input.txt) in IOP GUI interaction window.
In general, you can use input.txt in the maude directory of
interest to predefine or save request scenarios.You send messages to IMaude by selecting a line and doing `l` where
`KEY` is `control` on Linux and `command` on Mac.## References
A technical description of the IMaude system can be found in the paper:
[IOP: The InterOperability Platform and IMaude: An Interactive Extension of Maude](http://www.csl.sri.com/~clt/Papers/04wrla-iop.pdf)
by Ian A. Mason and Carolyn L. Talcott.From Fifth International Workshop on Rewriting Logic and Its Applications (WRLA'2004). Elsevier. 2004.