g, allocation and deallocation of <code>lval</code> types.</p>

<p>If we wish to reduce this overhead we need to lower the number of calls to <code>malloc</code>. One method of doing this is to call <code>malloc</code> once at the beginning of the program, allocating a large pool of memory. We should then replace all our <code>malloc</code> calls with calls to some function that slices and dices up this memory for use in the program. This means that we are emulating some of the behaviour of the operating 