/Tupi

Language and IDE support to describe, expand and execute extended finite-state machines on JVM

Primary LanguageJavaMIT LicenseMIT

Tupi

Language and interpreter support to describe, expand and execute extended finite-state machines (EFSM).

###Language The main goal is to mimic every EFSM property in code:

  • Memory
  • States
  • Transitions
  • Events
  • Guards
  • Actions

Plus additional concepts and features such as polymorphism and pattern matching.

You can see more code examples in our Wiki

###Interpreter

The interpreter is written in Java, so it will run in most platforms, even web pages.
Besides its main functionality, you can also enable the generation of dot files to illustrate any EFSM.

###Code Example

Every event is described by a {EVENT} tag followed by one or more transition pattern matches [states_origin] -> newState, a transition guard and an action to be executed.

Printer - "Recursive"

You can also extend an existent machine:

Printer Limited

How to install

Tupi is released under an eclipse plugin. You can install it using www.cin.ufpe.br/~fmca/Tupi/ as update site.
To learn how to install a plugin you can follow this tutorial.