Skip to content

simoneorlando/Corinne

Repository files navigation

Corinne

Corinne is a tool to manage Choreography Automata (CA).

Corinne

Table of Contents

Dependencies

Running

Open a terminal in the main folder of Corinne and type:

python3 main.py

Usage

  • OPEN: takes in input DOT files (.gv) in CA syntax, but also it can get:
    • Chorgram file (.txt) , a grammar used for Global Graph (See Chorgram) ;
    • DOT files (.gv) generated by Domitilla (See Domitilla) ;
      and convert them into DOT files with CA syntax.

For more details about the CA syntax see DOT.g4 file.

  • RENDER: render a given DOT (.gv) file in PNG or PDF format.

Once taken one or more files as input, Corinne can apply some functions on it:

  • PRODUCT: a cartesian product of two CA ;
  • SYNCHRONIZATION: given a CA, it can synchronize two participants of its ;
  • PROJECTION: given a CA, you can select one participant from it and get the relative CFSM (Communicating-FSA) ;

File List

  • main.py : launch the program.
  • guy.py : define the guy and its methods to create every view of the program.
  • controller.py : define methods used by the guy to process files (open, render, ...).
  • fsa.py : an abstract class to define a simple Finite State Machine and its methods.
  • chor_auto.py : a class to define the Choreography Automata (CA), inherits from fsa class.
  • cfsm.py : a class to define the Communicating FSA (CFSA), inherits from fsa class.
  • dot_parser/* : contains the dot parser and every file it need to parse and convert.
  • global_graph_parser/* : contains the Global Graph parser and every files it need to parse and convert.
  • examples/* : some examples.

Author

Main author: Simone Orlando - simoneorlando - [email protected]

Other author(s): Ivan Lanese - lanese - [email protected]

License

This project is licensed under the MIT License - see the LICENSE file for details

About

A tool to manage Choreography Automata

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published