Currently the compiler generates undefine-R and new-R strategies for each dynamic rule R, even if no declaration for R introduces dependencies. The advantage is that the undefine and new strategies can be used uniformly. However, that is only useful for declaring
new scopes, and may actually be misleading. A problem is that detecting erroneous invocations of these strategies may not be done statically; in the generic data-flow transformation strategies, the idea is to parameterize the strategy with the names of a bunch of rules and call the undefine- and new- strategies by creating the call at run-time. Thus, only at run-time will the programmer find out that a certain undefine- or new- rule is not defined. This probably acceptable.

Submitted on 25 July 2005 at 15:47

On 25 July 2005 at 16:00 Jira commented:

STR-368, visser:
Moved invocation of creation strategies to desugaring of dependent rules to ensure the new- and undefine- strategies are only created in case there is a dependent dynamic rule.

Log in to post comments