1. A machine readable storage medium storing executable program instructions which when executed by a data processing system cause the data processing system to perform a method for executing software written in a language which uses a stack memory allocation technique to store local or automatic variables, the method comprising: writing a data structure of a block to a stack memory structure, the block including a function pointer that references a function which uses data in the block; executing block copy instructions, caused to be invoked in the writing of the software, to copy the block to a heap memory structure which is configured to store global variables.