The Grail Home Page


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 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. Version 2.4 of Grail enables you to manipulate parameterizable finite-state machines and regular expressions. 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. Version 2.4 of Grail supports Mealy machines.

Who's developing Grail?

Grail's principal researchers are:

Darrell Raymond (presently at the University of Western Ontario)
drraymon@csd.uwo.ca

Click here for Darrell's home page.

Derick Wood (presently at the Hong Kong University of Science and Technology)
dwood@cs.ust.hk

Click here for Derick's home page.

Where can I read more about Grail?

Consult the Grail publications page.

To read more about non-Grail work on finite-state machine implementations, consult the Grail related work page.

How can I get Grail?

You can access Grail at UWO. Version 2.4 of Grail is now available.

The source code, man pages, and .dvi files for the User's Guide, the Programmer's Guide and the Release Notes can be downloaded by clicking here. This file is .2 Mbytes compressed and .8 Mbytes uncompresseed.

We also provide pre-compiled binaries for various architectures. These binaries are all about .7 Mbytes compressed, and about 2 Mbytes uncompressed.

For Sparc/SunOS, click here.

For 486/DOS, click here.

For SGI/IRIX, click here.

For RS6000/AIX, click here.

Is Grail free?

No, 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.

It's not that we have something against people making money---we just want to make sure that those who benefit financially from using Grail put some small part of that benefit back into the development and support of Grail

What's going on with Grail these days?

Several things: