Defining parsing- and generation problems as goals implies that the parser will enumerate all feature structures that have a compatible value for the phon attribute; and similarly such a generator will enumerate feature structures that have a compatible value for the sem attribute. This approach faces a number of problems however. For example, consider the generation problem for a grammar that defines among others the following signs:
For a given logical form
the generator delivers the strings ``the priest drinks'' and ``the priest drinks whisky'', and perhaps also ``the priest drinks strong cheap whisky from a brown paper bag''. On the other hand, the generator also delivers ``the priest drinks'' for the logical form 2.5
A related problem can be illustrated with respect to parsers. For example, in parsers for Definite Clause Grammars  strings are (usually) represented by difference lists; for example `the priest drinks from a brown paper bag' is represented as:
However, the parser usually does not expect to find an input goal such as:
but instead expects the tail variable of the difference list to be instantiated with some constant (often the empty list: ), eg:
This `trick' simplifies the parser considerably because it is now impossible to further instantiate the tail variable. Most DCG parsers will not terminate without this convention because these parsers will try to further instantiate the variable tail by longer and longer lists of words.