A large FUG, like many other large computer programs, becomes difficult
to read and maintain when its size increases. The size of a FUG is
best measured by counting the number of disjunctions it contains, as
discussed in Chapter
.
The depth of embedding of the disjunctions is also an indication of the
complexity. The number of branches in the disjunctive normal form of the
grammar accounts for this embedding but is in general not very informative.
For example, the grammar of FUF contains 580 disjunctions and has a
disjunctive normal size of 1029. Another more conventional measure of
the complexity of the grammar viewed as a program, is the number of lines
of code: 9,500 lines for a total of 290,000 characters. By all measures,
such a grammar is a large program. So the well-known problems of size
management in software engineering become an issue for large FUGs: ease
of maintenance, readability, modularity etc.