Determining the exact value of , , and is cumbersome, since it involves counting assembly code instructions. Instead of estimating these values directly, we therefore use a predictor for estimating the size increase and the decrease in execution time .

We assume that the code size increases as a linear function of the number of nodes for which procedure-driven code is generated. furthermore, we assume that execution time decreases as a linear function of the number of interpreter calls that are saved when procedure-driven code is generated. Under these assumptions, we derive the following predictors for the three type constructors of the generic type definition language:

- structure type
- , where n is the number of fields in the structure
- , where n is the number of fields in the structure

- union type
- , where n is the number of fields in the structure
- . In a union type, the interpreter is called once for handling the type definition node, and once for handling the union field.

- array type
- . Generating procedure-driven code for an array means concerns two nodes, the type definition node for the array, and the field node.
- . As previously defined, is the number of fields in the array.

Table 1 summarizes these results in compact form.

**Table 1:** Predictors for effect of procedure-driven code on code size and
execution time

Sun Oct 26 21:35:40 MET 1997