RAGe is a tool for semi-random generation of register automata1. It provides two strategies for generation:
- Random generation of a DFA using the Champarnaud-Paranthoën algorithm2 and subsequent transformation into an RA
- Manual definition using a Kotlin DSL
Additionally, three combination mechanisms for automata are included:
- Concatenation
- Random replacement of transitions with sub-RAs
- Splitting one location and introducing an RA to obscure the discriminating suffixes
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
-
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. ↩
-
Champarnaud, J.-M., & Paranthoën, T. (2005). Random generation of DFAs. Theoretical Computer Science, 330(2), 221–235. ↩