Anemone 1.0.0 documentation

The Anemone workbench

«  Anemone : a Workbench for the Multi-Bach Coordination Language   ::   Contents   ::   The Multi-Bach language and its temporal logic  »

The Anemone workbench

This first page describes the Anemone workbench. It aims at introducing the way Anemone-doc works to create documentation.

  • Anemone is articulated around a so-called interactive blackboard.
  • It starts by displaying the current contents of the shared space and allows to interact directly through the tell, get, filter, unfilter and clear buttons. It offers to create four types of processes.

The objective of this workbench is threefold:

  • to allow the user to understand the meaning of instructions written in Linda-like languages, by showing how they can be executed step by stepand how the contents of the shared space, central to coordination languages, can be modified so as to release suspended processes;
  • to allow the user to better grasp the modeling of real-life systems, by connecting agents to animations representing the evolution of the modeled system;
  • to allow the user to check properties by model checking reachability formulae and by producing traces that can be replayed as evidences of the establishment of the formulae.

To make it more practical, the authors uses the workbench Anemone on a running example, the rush hour puzzle.

alternate text

Rush Hour Problem : the game as illustrated at Michael Fogleman

This game, illustrated in the following figure, consists in moving cars and trucks on a 6×6 grid, according to their direction, such that the red car can exit. It can be formulated as a coordination problem by considering cars and trucks as autonomous agents which have to coordinate on the basis of free places

alternate text

The game modeled as a grid of 6×6, with cars and trucks depicted as rectangles of different colors

The implementation

The Anemone workbench has been impletement on top of Scala [1], which combines the object-oriented and functional paradigms and which benefits from strong static type systems, together with the Processing library [2] which allows for creating animations by redrawing canvas several times per second (typically 60 times per second).

The key ideas for implementation

  • Internal representation of data
  • Computations
  • Temporal logic

Information

  • Release: 1.0.0
  • Date: May 2020
  • Authors: Manel Barkallah and Jean-Marie Jacquet, Namur University - Belgium
  • Target: users and developers
  • For more information on the Anemone workbench, please visit : Anemone.

Footnotes

[1]
  1. Odersky, L. Spoon, B. Venners, Programming in Scala, A comprehensive step-by-step guide, Artemis, 2016.
[2]
  1. Reas, B. Fry, Processing: A Programming Handbook for Visual Design-ers, The MIT Press, 2014.

«  Anemone : a Workbench for the Multi-Bach Coordination Language   ::   Contents   ::   The Multi-Bach language and its temporal logic  »