Properties of Good Functionality

It is harder to describe good functionality than to describe a good metalanguage or good documentation. However, some good functional characteristics can be identified.

First, the tool should be robust; a mistake by the user shouldn't leave the user hanging with an execution error.

Second, a tool should be efficient, both in time and in space. An example of an efficient tool would be one which produced the tables implemented as a two-dimensional array. As we shall see, parse tables are sparse, and for real programming languages they are large. Data structures appropriate to sparse matrices are required.

Also, a good tool is integrated with the remainder of the compiler. And a good tool has two modes of use - one for the novice that includes lots of help and prompts and one for the sophisticated user.

Send questions and comment to: Karen Lemone