Next: Compiling ALE Programs
Up: Generation
Previous: Pivot Checking
  Contents
For the most part, the generator treats procedural attachments as the
parser does -- it evaluates them with respect to other daughter
specifications in the order given. The one exception to this is
sem_goal> attachments. These goals are distinguished as attached
to the semantic head, and are therefore evaluated either immediately
before or immediately after the sem_head> description. As a
result, sem_goal> specification can only occur immediately
before or immediately after a sem_head> specification; and thus
only in chain rules. sem_goal> attachments are not evaluated
during the pivot check described above -- only the sem_head>
and mother descriptions. During parsing, sem_goal>
specifications are treated exactly the same as goal>
specifications, i.e., evaluated in order.
To summarize, the order of execution for a non-chain rule specification
during generation is:
- the mother description, then
- the cat>, cats>, and goal> descriptions, in
order, from left to right.
There are no sem_head> or sem_goal> specifications in a
non-chain rule. The order for a chain rule specification during
generation is:
- the pre-head sem_goal> specification, if it exists,
- the sem_head> description,
- the post-head sem_goal> specification, if it exists,
- the mother description, then5.4
- the cat>, cats> and goal> specifications, in
order, from left to right.
Again, practical grammar implementations will arrange information in
rules in such a way as to ensure termination and to force failure as
early as possible. For non-chain rules, this means making the mother
and early daughters or goals as informative as possible at the
description level (that is, up to where type inferencing can take
over). For chain rules, the semantic head and its attachments should
be maximally informative.
Next: Compiling ALE Programs
Up: Generation
Previous: Pivot Checking
  Contents
Detmar Meurers
2001-03-03