sedatb455 / rage

RAGe: A Generator for Register Automata

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RAGe: A Generator for Register Automata

RAGe is a tool for semi-random generation of register automata1. It provides two strategies for generation:

  1. Random generation of a DFA using the Champarnaud-Paranthoën algorithm2 and subsequent transformation into an RA
  2. Manual definition using a Kotlin DSL

Additionally, three combination mechanisms for automata are included:

  1. Concatenation
  2. Random replacement of transitions with sub-RAs
  3. Splitting one location and introducing an RA to obscure the discriminating suffixes

Using

Pre-built installers and distributions (using jpackage) are available and expose a command-line interface to some preconfigured generators. Alternatively, RAGe can be used as a library via Maven Central and custom generation campaigns can be configured.

Footnotes

  1. Cassel, S., Howar, F., Jönsson, B., Merten, M. & Steffen, B. (2015). A succinct canonical Register Automaton model. Journal of Logical and Algebraic Methods in Programming, 84(1), 54–66.

  2. Champarnaud, J.-M., & Paranthoën, T. (2005). Random generation of DFAs. Theoretical Computer Science, 330(2), 221–235.

About

RAGe: A Generator for Register Automata


Languages

Language:Kotlin 100.0%