About the Grail+ Project

What is Grail+?
How can Grail+ be used?
Copyright information

What is Grail+?

Grail+ is a symbolic computation environment for finite-state machines, regular expressions, and other formal language theory objects. Using Grail+, one can input machines or expressions, convert them from one form to the other, minimize, make deterministic, complement, and perform many other operations.

Grail+ enables you to manipulate parameterizable finite-state machines, parameterizable regular expressions, and parameterizable finite languages. By `parameterizable', we mean that the alphabet is not restricted to the usual twenty-six letters and ten digits. Instead, all algorithms are written in a type-independent manner, so that any valid C++ base type and any user-defined type or class can define the alphabet of a finite-state machine or regular expression.

How can Grail+ be used?

Grail+ is intended for use in teaching, for research into the properties of machines, and for efficient computation with machines.

Grail+ is written in C++. It can be accessed either through a process library or through a C++ class library.

Copyright information

Please note that Grail+ is not free.

We don't charge scholars, students, or researchers for the use of Grail+, and we don't charge people who simply want to play with it to satisfy their own curiosity.

But no commercial use of Grail+ is permitted without our prior, express, written consent. No part of Grail+ may be included in a commercial product or used on a commercial problem without our prior, express, written consent.


Top of page
Grail+ home page