## 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